文章详情页
MySQL的check约束中可以包含子查询吗
浏览:84日期:2022-06-21 09:44:00
问题描述
我写了一句SQL如下:
create table if not exists Teachings( teacher varchar(255), classid varchar(32) references Class(id) check(teacher in (select username from Users where role = ’teacher’)));
但是在执行的时候报错(MySQL版本5.6.30):
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ’check(teacher in (select username from Users where role = ’teacher’)))’ at line 4
是不是MySQL中的check约束不能包含子查询呢?如果是,我的这句SQL应该怎么实现呢?
PS:完整的SQL见这里
问题解答
回答1:DDL漏了个逗号
MySQL并不支持CHECK约束,参见MySQL文档
可以用触发器来实现
相关文章:
1. windows误人子弟啊2. mysql优化 - MySQL如何为配置表建立索引?3. 我在网址中输入localhost/abc.php显示的是not found是为什么呢?4. 关于mysql联合查询一对多的显示结果问题5. 如何用笔记本上的apache做微信开发的服务器6. 实现bing搜索工具urlAPI提交7. 数据库 - Mysql的存储过程真的是个坑!求助下面的存储过程哪里错啦,实在是找不到哪里的问题了。8. python - linux怎么在每天的凌晨2点执行一次这个log.py文件9. MySQL主键冲突时的更新操作和替换操作在功能上有什么差别(如图)10. 冒昧问一下,我这php代码哪里出错了???
排行榜
