view release on metacpan or search on metacpan
);
table-drop example #1 output
# DROP TABLE "people"
table-drop example #2
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
table-drop example #2 output
# DROP TABLE "people" CASCADE
table-rename
table-rename example #1
constraint-create example #2 output
# ALTER TABLE "users" ADD CONSTRAINT "user_profile_id" FOREIGN KEY
# ("profile_id") REFERENCES "profiles" ("id")
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'
);
- table-drop example #1 output
# DROP TABLE "people"
- table-drop example #2
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
- table-drop example #2 output
# DROP TABLE "people" CASCADE
## table-rename
- table-rename example #1
- constraint-create example #2 output
# ALTER TABLE "users" ADD CONSTRAINT "user_profile_id" FOREIGN KEY
# ("profile_id") REFERENCES "profiles" ("id")
- 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'
examples/mssql view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * named constraint, on update, on delete
#
# ALTER TABLE ADD CONSTRAINT user_defined_name (user_id) REFERENCES users (id) ON UPDATE CASCADE ON DELETE CASCADE
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/mssql view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * table, condition
#
# DROP TABLE users CASCADE
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
say $sql->operations->pull->statement;
# table-rename operations
# * table rename
#
# ALTER TABLE peoples RENAME TO people
examples/mssql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
$dbh->begin_work;
while (my $op = $sql->operations->pull) {
say '[NO SUPPORT] ', $op->statement;
# $dbh->prepare($op->statement)->execute;
}
$dbh->rollback;
# table-rename operations
examples/mssql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/mssql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/mysql view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * named constraint, on update, on delete
#
# ALTER TABLE ADD CONSTRAINT user_defined_name (user_id) REFERENCES users (id) ON UPDATE CASCADE ON DELETE CASCADE
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/mysql view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * table, condition
#
# DROP TABLE users CASCADE
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
say $sql->operations->pull->statement;
# table-rename operations
# * table rename
#
# ALTER TABLE peoples RENAME TO people
examples/mysql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
$dbh->begin_work;
while (my $op = $sql->operations->pull) {
say '[MYSQL] ', $op->statement;
$dbh->prepare($op->statement)->execute;
}
$dbh->rollback;
# table-rename operations
examples/mysql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/mysql-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/postgres view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * named constraint, on update, on delete
#
# ALTER TABLE ADD CONSTRAINT user_defined_name (user_id) REFERENCES users (id) ON UPDATE CASCADE ON DELETE CASCADE
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/postgres view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * table, condition
#
# DROP TABLE users CASCADE
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
say $sql->operations->pull->statement;
# table-rename operations
# * table rename
#
# ALTER TABLE peoples RENAME TO people
examples/postgres-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
$dbh->begin_work;
while (my $op = $sql->operations->pull) {
say '[POSTGRES] ', $op->statement;
$dbh->prepare($op->statement)->execute;
}
$dbh->rollback;
# table-rename operations
examples/postgres-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/postgres-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/sqlite view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * named constraint, on update, on delete
#
# ALTER TABLE ADD CONSTRAINT user_defined_name (user_id) REFERENCES users (id) ON UPDATE CASCADE ON DELETE CASCADE
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/sqlite view on Meta::CPAN
);
say $sql->operations->pull->statement;
# * table, condition
#
# DROP TABLE users CASCADE
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
say $sql->operations->pull->statement;
# table-rename operations
# * table rename
#
# ALTER TABLE peoples RENAME TO people
examples/sqlite-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->table_drop(
name => 'people',
condition => 'cascade'
);
$dbh->begin_work;
while (my $op = $sql->operations->pull) {
say '[SQLITE3] ', $op->statement;
$dbh->prepare($op->statement)->execute;
}
$dbh->rollback;
# table-rename operations
examples/sqlite-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
examples/sqlite-tdb view on Meta::CPAN
{
name => 'id',
type => 'integer',
primary => 1
}
]
);
$sql->constraint_create(
on => {
update => 'cascade',
delete => 'cascade'
},
source => {
table => 'users',
column => 'profile_id'
},
target => {
table => 'profiles',
column => 'id'
},
name => 'user_profile_id'
lib/SQL/Engine.pm view on Meta::CPAN
);
=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
lib/SQL/Engine.pm view on Meta::CPAN
=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'
lib/SQL/Engine/Grammar.pm view on Meta::CPAN
method constraint_name(HashRef $data) {
return $data->{name} || join('_', 'foreign',
join('_', grep {defined} @{$data->{source}}{qw(schema table column)}),
join('_', grep {defined} @{$data->{target}}{qw(schema table column)})
);
}
method constraint_option(Str $name) {
if (lc($name) eq "cascade") {
return $self->term('cascade');
}
elsif (lc($name) eq "no-action") {
return $self->term(qw(no action));
}
elsif (lc($name) eq "restrict") {
return $self->term('restrict');
}
elsif (lc($name) eq "set-default") {
return $self->term(qw(set default));
}