Sql ';从'中删除;查询问题
我创建了以下两个表Sql ';从'中删除;查询问题,sql,foreign-keys,Sql,Foreign Keys,我创建了以下两个表 create table mail(mid integer primary key, name varchar(20) ) create table phone( pid integer foreign key references mail(email), phone integer) “删除pid=12的记录”。这意味着,我必须从oth表中删除pid=12的记录。所以,我运行了以下查询 delete from mail, phone on mail.mid=phone.
create table mail(mid integer primary key, name varchar(20) )
create table phone( pid integer foreign key references mail(email), phone integer)
“删除pid=12的记录”。这意味着,我必须从oth表中删除pid=12的记录。所以,我运行了以下查询
delete from mail, phone on mail.mid=phone.pid where pid=12
但我得到了类似“检查来自附近的语法”的错误,然后如何获得正确的输出
谢谢和问候,
Pooja.您需要两个查询
从pid=12的邮件中删除;
从电话中删除pid=12
您需要两个查询
从pid=12的邮件中删除;
从电话中删除pid=12
我想一定是
。。。其中phone.pid=12
我想它一定是。。。其中phone.pid=12
只需让数据库通过对外键使用级联删除来处理它。只需让数据库通过对外键使用级联删除来处理它。您必须分别执行这两个操作。将它们包装在事务中,以确保在出现故障时保持完整性
declare @id int;
set @id = 12;
begin transaction
delete from mail where pid = @id;
if @@error = 0
delete from phone where pid = @id;
else
rollback transaction;
end
您必须分别执行这两个操作。将它们包装在事务中,以确保在出现故障时保持完整性
declare @id int;
set @id = 12;
begin transaction
delete from mail where pid = @id;
if @@error = 0
delete from phone where pid = @id;
else
rollback transaction;
end
在该位置上使用关键字ON无效,如果要在该条件下进行内部联接,请将其移动到where子句
delete from mail, phone where pid=12 AND mail.mid=phone.pid
在该位置上使用关键字ON无效,如果要在该条件下进行内部联接,请将其移动到where子句
delete from mail, phone where pid=12 AND mail.mid=phone.pid
如果使用mysql,则语法如下:
delete mail, phone
from mail inner join phone
where mail.mid=phone.pid and pid=12
如果使用mysql,则语法如下:
delete mail, phone
from mail inner join phone
where mail.mid=phone.pid and pid=12
如果您使用的是oracle,则在创建表选项时,可以在DELETE CASCADE上使用
create table phone( pid integer , phone integer, foreign key(pid) REFERENCES mail ON DELETE CASCADE)
如果您使用的是oracle,则在创建表选项时,可以在DELETE CASCADE上使用
create table phone( pid integer , phone integer, foreign key(pid) REFERENCES mail ON DELETE CASCADE)
你能告诉我,如何使用“级联删除”吗?bcuz,这是我第一次听到。这是一个很好的建议,但是db用户帐户需要拥有Alter Table
@Pooja的权限。级联删除是一种主-详细信息(外键)关系,在主-详细信息被删除时,会自动删除这些详细信息。您使用的是什么RBDM?Microsoft SQL Server?在这种情况下,看看你会告诉,如何使用“级联删除”?bcuz,这是我第一次听到。这是一个很好的建议,但是db用户帐户需要拥有Alter Table
@Pooja的权限。级联删除是一种主-详细信息(外键)关系,在主-详细信息被删除时,会自动删除这些详细信息。您使用的是什么RBDM?Microsoft SQL Server?在这种情况下,请看对不起,它不起作用。它显示的错误类似于“检查','附近的语法”。对不起,它不起作用。它显示的错误类似于“检查','附近的语法”。对不起,它不起作用。它显示的错误类似于“检查','附近的语法”。对不起,它不起作用。它显示的错误类似于“检查','附近的语法”。对不起,它不起作用。它显示的错误类似于“检查','附近的语法”。对不起,它不起作用。它显示的错误类似于“检查','附近的语法”