gpt4 book ai didi

mysql - 使用外键代替检查约束

转载 作者:行者123 更新时间:2023-11-29 09:16:03 25 4
gpt4 key购买 nike

我有一个带有检查约束的表,MySQL 忽略了该表。我正在使用外键约束来实现相同的功能。可以吗?使用此方法时是否需要了解一些信息?

CREATE TABLE country (
code VARCHAR(2) NOT NULL,
iso_code VARCHAR(3) NOT NULL,
name VARCHAR(30) NOT NULL,
status VARCHAR(10) NOT NULL DEFAULT 'ACTIVE',
PRIMARY KEY (code),
CONSTRAINT CK_COUNTRY_STATUS CHECK(status in ('ACTIVE','INACTIVE'))
)ENGINE=InnoDB

drop table if exists country_status;
CREATE TABLE country_status (status varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (status)) ENGINE=InnoDB ;
insert into country_status VALUES ('ACTIVE') , ('INACTIVE');
alter table country add CONSTRAINT FK_COUNTRY_STATUS FOREIGN KEY (status) REFERENCES country_status (status);

mysql> show create table country\G
*************************** 1. row ***************************
Table: country
Create Table: CREATE TABLE `country` (
`code` varchar(2) NOT NULL,
`iso_code` varchar(3) NOT NULL,
`name` varchar(30) NOT NULL,
`status` varchar(10) NOT NULL DEFAULT 'ACTIVE',
PRIMARY KEY (`code`),
KEY `FK_COUNTRY_STATUS` (`status`),
CONSTRAINT `FK_COUNTRY_STATUS` FOREIGN KEY (`status`) REFERENCES `country_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

最佳答案

关于mysql - 使用外键代替检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4182308/

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