gpt4 book ai didi

php - 创建表mysql失败时约束

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

我是 php 和 mysql 的新手,我想将用户输入限制为特定值。例如,类型只能是 M 或 C,而不能是其他类型。因此,我使用以下代码在数据库 hactl 下创建 table1。

/**********************************************************************/
/*Create database and table*/

CREATE DATABASE Hactl;
CREATE TABLE Hactl.table1(
Type VARCHAR(1) NOT NULL,
Region VARCHAR(50) NOT NULL,
Country VARCHAR(50) NOT NULL,
City VARCHAR(3) NOT NULL,
Imp DECIMAL(10,2) NOT NULL,
Exp DECIMAL(10,2) NOT NULL,
TS DECIMAL(10,2) NOT NULL,
Year INT(4) NOT NULL,
Month VARCHAR(3) NOT NULL,
CONSTRAINT chk_hactl CHECK(Type IN ('M','C') AND
Month IN ('Jan', 'Feb', 'Mar',
'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep',
'Oct', 'Nov', 'Dec')
)
);

当我插入一个Type = K的新行时,它仍然可以插入成功。

最佳答案

要限制其他条目,您可以简单地使用ENUM

CREATE TABLE  Hactl.table1(
Type enum('M','C') NOT NULL,
Region VARCHAR(50) NOT NULL,
Country VARCHAR(50) NOT NULL,
City VARCHAR(3) NOT NULL,
Imp DECIMAL(10,2) NOT NULL,
Exp DECIMAL(10,2) NOT NULL,
TS DECIMAL(10,2) NOT NULL,
Year INT(4) NOT NULL,
Month enum('Jan', 'Feb', 'Mar',
'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep',
'Oct', 'Nov', 'Dec') NOT NULL,

);

关于php - 创建表mysql失败时约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25767808/

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