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 )