执行 sql 语法的正确语法是啥?

Posted

技术标签:

【中文标题】执行 sql 语法的正确语法是啥?【英文标题】:what is Correct syntax for executing sql syntax?执行 sql 语法的正确语法是什么? 【发布时间】:2015-05-28 06:31:02 【问题描述】:
String ag ="ALTER TABLE QUESTION"+
            "(ADD  FOREIGN KEY (a_status) REFERENCES ANSWER(a_status))";

                      stmt.executeUpdate(ag);

错误信息: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 你有一个 SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 'FOREIGN KEY 附近使用正确的语法 (a_status) REFERENCES ANSWER(a_status))' 在第 1 行

【问题讨论】:

Add Foreign Key to existing table的可能重复 【参考方案1】:

这应该是正确的。见offical documentation:

String ag ="ALTER TABLE QUESTION ADD FOREIGN KEY (a_status) REFERENCES ANSWER(a_status)";

【讨论】:

【参考方案2】:
String ag ="ALTER TABLE QUESTION ADD CONSTRAINT (question_answer_fk1) FOREIGN KEY (a_status) REFERENCES ANSWER(a_status)";

您还可以添加更多特定条件:

ON DELETE SET NULL/CASCADE ON UPDATE SET NULL

【讨论】:

【参考方案3】:
String ag ="ALTER TABLE QUESTION ADD CONSTRAINT (question_answer_ibfk1) FOREIGN KEY (a_status) REFERENCES ANSWER(a_status)";

一般

ALTER TABLE Child_tblName
ADD CONSTRAINT 'give any name to the foreign key generally I do Child_tblName_Parent_tblName_ibfk_number' FOREIGN KEY ('Child_tblName's Column') REFERENCES Parent_tblName('Parent_tblName's Column')

【讨论】:

谢谢您先生 @Ole Albers! 添加良好的 CodeBlock 视图以提高可读性,我是 *** 的新手,所以学习这些版本的东西。

以上是关于执行 sql 语法的正确语法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

跨表 SQL 查询的正确语法是啥?

SQL中SOURCE命令的正确语法是啥

php中for和SQL更新的正确语法是啥?

Android Room Database 执行批量更新的正确语法是啥?

SQL的存储过程 语法格式是啥?

与 SUM(IF()) 一起使用的正确语法应该是啥? [关闭]