gpt4 book ai didi

mysql - MySQL 会删除引用吗?

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:31 24 4
gpt4 key购买 nike

我有一个带有预设值的“查找”表(被告知它比 ENUM 更好)

CREATE TABLE tbl_payment_type (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
description VARCHAR(25)
);
INSERT INTO tbl_payment_type
(description)
VALUES
('PAYPAL'),
('DEBIT CARD'),
('CREDIT CARD'),
('CASH ON DELIVERY');

现在,我的每个订单都包含一种支付类型。

CREATE TABLE tbl_order (
id INT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(id),
...
payment_type INT,
FOREIGN KEY(payment_type) REFERENCES tbl_payment_type(id)
) AUTO_INCREMENT = 1000;

我目前正在使用 MyISAM,但将来可能会尝试使用 InnoDB(我不确定这是否会影响问题)。

最后,问题是,如果我尝试从 tbl_payment_type 中删除一条记录,是否会导致 MySQL 自动删除包含此付款类型的 tbl_order 中的所有记录?

最佳答案

MyISAM 不支持外键,因此在使用此存储提供程序时不会发生任何事情。

InnoDB 支持外键,默认情况下它会在没有外键匹配的情况下限制 DELETE 和 UPDATES。可以通过添加 ON DELETE 和 ON UPDATE 选项来更改此行为。参见 FOREIGN KEY Constraints在 MySQL 网站上。

关于mysql - MySQL 会删除引用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com