0

以下のクエリを実行した後、データベースをmysqldumpするときに、制約が数値順であることを確認しようとしています。AFTER なしでダンプを実行すると (これは機能しません)、最初の制約として phppos_sales_ibfk_3 が表示されます。

ALTER TABLE `phppos_sales`
  ADD CONSTRAINT `phppos_sales_ibfk_3` FOREIGN KEY (`location_id`) REFERENCES `phppos_locations` (`location_id`);    
  ADD CONSTRAINT `phppos_sales_ibfk_1` FOREIGN KEY (`employee_id`) REFERENCES `phppos_employees` (`person_id`),
  ADD CONSTRAINT `phppos_sales_ibfk_2` FOREIGN KEY (`customer_id`) REFERENCES `phppos_customers` (`person_id`),

私が変更しようとしているコードphppos_sales

ALTER TABLE `phppos_sales`
   ADD CONSTRAINT `phppos_sales_ibfk_3` AFTER `phppos_sales_ibfk_2` FOREIGN KEY (`location_id`) REFERENCES `phppos_locations` (`location_id`);

エラーが発生します:

#1064 - 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 'AFTER `phppos_sales_ibfk_2` FOREIGN KEY (`location_id`) REFERENCES `phppos_locat' at line 6 
4

1 に答える 1

0

「ALTER TABLE」の「ADD CONSTRAINT」部分では、キーワード「AFTER」を使用できません。

テーブル内で列が表示される場所は制御できますが、制約が表示される場所は制御できません。

于 2013-10-17T14:33:36.207 に答える