sql 从 2 个表中删除记录
sql delete record from 2 tables
我在 sql 服务器中有 2 个 table(我没有创建这些 table,但我必须使用它们):
document
- document_id
- created_date
trade_document
- trade_document_id
- document_id *foreign key to document table
今天,我添加了一堆新的 trade_document
记录(它会自动创建相关的 document_id
,这是使用 ORM
完成的),但我想删除所有这些记录。
我想相对于 document
table
中的 added_date
进行删除
where created_date > yesterday
我也想删除相关的document
记录。
我对 sql 不是很擅长,到目前为止我只有一个基本模板,没有做太多事情:
DELETE FROM db.schema.trade_document (I'm guessing some sort of join on document)
WHERE document.created_date > 11/10/15
it doesn't haven't to be one statement, could be multiple
您需要两个删除语句并按此顺序。
DELETE FROM db.schema.trade_document
WHERE document_id IN (SELECT document_id
FROM document
WHERE created_date > 11/10/15);
DELETE FROM db.schema.document
WHERE created_date > 11/10/15);
供您参考,您还可以使用 DELETE CASCADE
创建您的 table
How do I use cascade delete with SQL Server?
我在 sql 服务器中有 2 个 table(我没有创建这些 table,但我必须使用它们):
document
- document_id
- created_date
trade_document
- trade_document_id
- document_id *foreign key to document table
今天,我添加了一堆新的 trade_document
记录(它会自动创建相关的 document_id
,这是使用 ORM
完成的),但我想删除所有这些记录。
我想相对于 document
table
added_date
进行删除
where created_date > yesterday
我也想删除相关的document
记录。
我对 sql 不是很擅长,到目前为止我只有一个基本模板,没有做太多事情:
DELETE FROM db.schema.trade_document (I'm guessing some sort of join on document)
WHERE document.created_date > 11/10/15
it doesn't haven't to be one statement, could be multiple
您需要两个删除语句并按此顺序。
DELETE FROM db.schema.trade_document
WHERE document_id IN (SELECT document_id
FROM document
WHERE created_date > 11/10/15);
DELETE FROM db.schema.document
WHERE created_date > 11/10/15);
供您参考,您还可以使用 DELETE CASCADE
How do I use cascade delete with SQL Server?