我是 mysql 的新手,我的问题是这是正确的吗?
CREATE TABLE ... (
/* some definition ommitted. */
About varchar(300) NOT NULL DEFAULT '...',
CHECK(About LIKE 'ABOUT: %, DATE: %')
);
通过搜索,所有结果都在 LIKE
中显示 SELECT
,那么在 CHECK
中使用在语法上是否正确?
答案 0 :(得分:0)
是的,语法上没问题。
但有两点:
请注意,在 8.0.16 版本以下,MySQL 确实接受表 DDL 中的检查约束,但不强制执行检查约束。所以就好像他们根本不在那里一样。
您应该检查这是否适用于您的版本。
更重要的是,您似乎犯了一个大错误,违反了第一范式。
这里似乎有两个属性,某种文字描述和某个时间点。那应该是两个不同的列。
不要将它们的值放在一个大的文本列中!
否则我保证你以后会很头疼: