Fey::SQL::Insert - Represents a INSERT query


Fey documentation  | view source Contained in the Fey distribution.

Index


NAME

Top

Fey::SQL::Insert - Represents a INSERT query

VERSION

Top

version 0.40

SYNOPSIS

Top

  my $sql = Fey::SQL->new_insert();

  # INSERT INTO Part
  #             (part_id, name, quantity)
  #      VALUES
  #             (?, ?, ?)
  $sql->insert()->into($Part);

  my $ph = Fey::Placeholder->new();

  $sql->values( part_id  => $ph,
                name     => $ph,
                quantity => $ph,
              );

  print $sql->sql($dbh);

DESCRIPTION

Top

This class represents a INSERT query.

METHODS

Top

This class provides the following methods:

Constructor

To construct an object of this class, call $query->insert() on a Fey::SQL object.

$insert->insert()

This method is basically a no-op that exists to so that Fey::SQL has something to call after it constructs an object in this class.

$insert->into()

This method specifies the INTO clause of the query. It expects a list of Fey::Column and/or Fey::Table objects, but not aliases.

If you pass a table object, then the INTO will include all of that table's columns, in the order returned by the $table->columns() method.

Most RDBMS implementations only allow for a single table here, but some (like MySQL) do allow for multi-table inserts.

$insert->values(...)

This method takes a hash where the keys are column names, and values are the value to be inserted for that column. Each value can be of the following:

* a plain scalar, including undef

This will be passed to Fey::Literal->new_from_scalar().

* Fey::Literal object
* Fey::Placeholder object

You can call this method multiple times in order to do a multi-row insert.

$insert->sql()

Returns the full SQL statement which this object represents. A DBI handle must be passed so that identifiers can be properly quoted.

$insert->bind_params()

See the Fey::SQL section on Bind Parameters for more details.

$insert->insert_clause()

Returns the INSERT INTO clause portion of the SQL statement as a string (just the tables).

$insert->columns_clause()

Returns the portion of the SQL statement containing the columns for which values are being inserted as a string.

$insert->values_clause()

Returns the VALUES clause portion of the SQL statement as a string.

ROLES

Top

* Fey::Role::SQL::HasBindParams
* Fey::Role::SQL::Cloneable

BUGS

Top

See Fey for details on how to report bugs.

AUTHOR

Top

Dave Rolsky <autarch@urth.org>

COPYRIGHT AND LICENSE

Top


Fey documentation  | view source Contained in the Fey distribution.