文章详情页
MySQL的check约束中可以包含子查询吗
浏览:182日期: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. docker images显示的镜像过多,狗眼被亮瞎了,怎么办?2. 如何解决docker宿主机无法访问容器中的服务?3. 如何解决Centos下Docker服务启动无响应,且输入docker命令无响应?4. 老师,flex-shrink: 1; 按视频操作,不会自动缩放5. mysql - phpMyAdmin无法导入数据6. docker镜像push报错7. docker api 开发的端口怎么获取?8. javascript - 清空Chrome缓存的疑问9. python - 怎样在linux下开发flask web应用时查看代码出错(traceback)的地方。10. css3 - 微信前端页面遇到的transition过渡动画的bug
排行榜

网公网安备