【问题标题】: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 行

【问题讨论】:

标签: mysql


【解决方案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 视图以提高可读性,我是 stackoverflow 的新手,所以学习这些版本的东西。
      猜你喜欢
      • 2018-11-14
      • 2017-10-28
      • 1970-01-01
      • 2011-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      相关资源
      最近更新 更多