SQL-Engine

 view release on metacpan or  search on metacpan

lib/SQL/Engine.pm  view on Meta::CPAN

        type => 'datetime',
      },
      {
        name => 'deleted',
        type => 'datetime',
      },
    ],
    temp => 1
  );

=item table-create example #3 output

  # CREATE TEMPORARY TABLE "users" ("id" integer PRIMARY KEY, "name" text,
  # "created" timestamp(0) without time zone, "updated" timestamp(0) without
  # time zone, "deleted" timestamp(0) without time zone)

=item table-create example #4

  $sql->table_create(
    name => 'people',
    query => {
      select => {
        from => {
          table => 'users'
        },
        columns => [
          {
            column => '*'
          }
        ]
      }
    }
  );

=item table-create example #4 output

  # CREATE TABLE "people" AS SELECT * FROM "users"

=back

=cut

=head2 table-drop

=over 4

=item table-drop example #1

  $sql->table_drop(
    name => 'people'
  );

=item table-drop example #1 output

  # DROP TABLE "people"

=item table-drop example #2

  $sql->table_drop(
    name => 'people',
    condition => 'cascade'
  );

=item table-drop example #2 output

  # DROP TABLE "people" CASCADE

=back

=cut

=head2 table-rename

=over 4

=item table-rename example #1

  $sql->table_rename(
    name => {
      old => 'peoples',
      new => 'people'
    }
  );

=item table-rename example #1 output

  # ALTER TABLE "peoples" RENAME TO "people"

=back

=cut

=head2 index-create

=over 4

=item index-create example #1

  $sql->index_create(
    for => {
      table => 'users'
    },
    columns => [
      {
        column => 'name'
      }
    ]
  );

=item index-create example #1 output

  # CREATE INDEX "index_users_name" ON "users" ("name")

=item index-create example #2

  $sql->index_create(
    for => {
      table => 'users'
    },
    columns => [
      {

lib/SQL/Engine.pm  view on Meta::CPAN

    },
    name => {
      old => 'accessed',
      new => 'accessed_at'
    }
  );

=item column-rename example #1 output

  # ALTER TABLE "users" RENAME COLUMN "accessed" TO "accessed_at"

=back

=cut

=head2 constraint-create

=over 4

=item constraint-create example #1

  $sql->constraint_create(
    source => {
      table => 'users',
      column => 'profile_id'
    },
    target => {
      table => 'profiles',
      column => 'id'
    }
  );

=item constraint-create example #1 output

  # ALTER TABLE "users" ADD CONSTRAINT "foreign_users_profile_id_profiles_id"
  # FOREIGN KEY ("profile_id") REFERENCES "profiles" ("id")

=item constraint-create example #2

  $sql->constraint_create(
    source => {
      table => 'users',
      column => 'profile_id'
    },
    target => {
      table => 'profiles',
      column => 'id'
    },
    name => 'user_profile_id'
  );

=item constraint-create example #2 output

  # ALTER TABLE "users" ADD CONSTRAINT "user_profile_id" FOREIGN KEY
  # ("profile_id") REFERENCES "profiles" ("id")

=item constraint-create example #3

  $sql->constraint_create(
    on => {
      update => 'cascade',
      delete => 'cascade'
    },
    source => {
      table => 'users',
      column => 'profile_id'
    },
    target => {
      table => 'profiles',
      column => 'id'
    },
    name => 'user_profile_id'
  );

=item constraint-create example #3 output

  # ALTER TABLE "users" ADD CONSTRAINT "user_profile_id" FOREIGN KEY
  # ("profile_id") REFERENCES "profiles" ("id") ON DELETE CASCADE ON UPDATE
  # CASCADE

=back

=cut

=head2 constraint-drop

=over 4

=item constraint-drop example #1

  $sql->constraint_drop(
    source => {
      table => 'users',
      column => 'profile_id'
    },
    target => {
      table => 'profiles',
      column => 'id'
    }
  );

=item constraint-drop example #1 output

  # ALTER TABLE "users" DROP CONSTRAINT "foreign_users_profile_id_profiles_id"

=item constraint-drop example #2

  $sql->constraint_drop(
    source => {
      table => 'users',
      column => 'profile_id'
    },
    target => {
      table => 'profiles',
      column => 'id'
    },
    name => 'user_profile_id'
  );

=item constraint-drop example #2 output

  # ALTER TABLE "users" DROP CONSTRAINT "user_profile_id"



( run in 0.898 second using v1.01-cache-2.11-cpan-e1769b4cff6 )