文章詳情頁
MySQL的check約束中可以包含子查詢嗎
瀏覽:151日期: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. 運行python程序時出現“應用程序發生異常”的內存錯誤?2. spring-mvc - spring-session-redis HttpSessionListener失效3. javascript - QQ第三方登錄的問題4. 在mac下出現了兩個docker環境5. node.js - mongodb查找子對象的名稱為某個值的對象的方法6. 利用IPMI遠程安裝centos報錯!7. 測試自動化html元素選擇器元素ID或DataAttribute [關閉]8. 正在使用electron和node.js做桌面應用,需要實時監聽是否有網絡連接,node或者electron是否可以做到9. javascript - 在 model里定義的 引用表模型時,model為undefined。10. java - Spring boot 讀取 放在 jar 包外的,log4j 配置文件,系統有創建日志文件,不寫入日志信息。
排行榜

網公網安備