sách gpt4 ai đã đi

SQLite - Làm thế nào để xóa hàng cha trong khi vẫn giữ lại hàng con?

In lại 作者:行者123 更新时间:2023-12-03 18:50:00 33 4
mua khóa gpt4 Nike

我了解PRAGMA foreign_keyON DELETE RESTRICT/NO ACTION的概念,但是我面临的是另一种情况。

我需要删除一个父行,但保持与之关联的子行。例如:

CREATE TABLE A(id, name);
INSERT INTO A(id, name) VALUES (1, "Loreum");

CREATE TABLE B(id, id_A, name) FOREIGN KEY(id_A) REFERENCES A(id);
INSERT INTO B(id, id_A, name) VALUES (1, 1, "Opium");
DELETE FROM A WHERE id = 1;


我想在保持子行完整的同时实现这一目标。这有可能吗?

biên tập

上面的示例将我的问题与 this question分开。示例可能对某些人有所帮助,他们只有在有代码时才能理解。

1 Câu trả lời

Bạn có thể sử dụngdeferred foreign key constraint进行此操作:

PRAGMA foreign_keys = on;
CREATE TABLE A(id PRIMARY KEY, name);
INSERT INTO A(id, name) VALUES (1, "Loreum");
CREATE TABLE B(id, id_A, name, FOREIGN KEY(id_A) REFERENCES A(id) DEFERRABLE INITIALLY DEFERRED);
INSERT INTO B(id, id_A, name) VALUES (1, 1, "Opium");

BEGIN;
DELETE FROM A WHERE id = 1;
INSERT INTO A(id, name) VALUES (1, "another Loreum");
COMMIT;

关于sqlite - SQLite-如何在保留子行的同时删除父行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349122/

33 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com