首先,我创建了一个像
CREATE TABLE Customer (
SD integer CHECK (SD > 0),
Last_Name varchar (30),
First_Name varchar(30)
);
Run Code Online (Sandbox Code Playgroud)
然后在该表中插入值
INSERT INTO Customer values ('-2','abc','zz');
Run Code Online (Sandbox Code Playgroud)
MySQL没有显示错误,它接受了值.
我想限制SQL表中的列值.例如,列值只能是"car"或"bike"或"van".我的问题是你如何在SQL中实现这一点,并且在数据库方面这样做是一个好主意,或者我应该让应用程序限制输入.
我还打算将来添加或删除更多值,例如"truck"
我使用的数据库类型是SQLite和MySQl
可能重复:
MySQL中的CHECK约束无效
我是学生,现在我必须弄清楚检查的意义.我们有一些代码:
CHECK (CHAR_LENGTH(PLZ) = 4)
Run Code Online (Sandbox Code Playgroud)
现在我必须弄清楚它到底在做什么.问题是我在互联网上找不到任何东西(或者我使用谷歌做了一些完全错误的事情).我创建了这个代码来测试它:
CREATE TABLE Test(
ID CHAR(4),
CHECK (CHAR_LENGTH(ID) = 4)
);
INSERT INTO Test(ID) VALUES ('12345');
Run Code Online (Sandbox Code Playgroud)
问题是我无法找到与CHECK约束删除行的任何区别.现在我问你?我使用与否的区别是什么.