2016-07-18 19 views
0

私はdrugsというテーブルを持っています。mysqlは外部キー制約の行を切り捨てます

id name 

1 Xenomine 
2 Yeart 
3 Zizan 

しかし、今、私は他の値を持つ(行1000)の挿入、Abaci、バーリにする必要があり

も私は麻薬テーブル

appointments 

id time drug_id 

を参照してください予定表を持っていますだから、私はドラッグテーブルを切り詰めようとしましたが、(プロダクション)アポイントメントテーブルにはデータはありませんでしたが、できませんでした。私はこの問題を解決することができますどのように

+0

'SET FOREIGN_KEY_CHECKS = 0;'。テーブルを切り捨ててみましょう。 – 1000111

答えて

1

あなたはtruncate table MySQLのコマンドを使用した場合、それはそれはtruncate tableにMySQLのドキュメントとして、動作しないということは驚くことではありません示しています

切り捨て操作がドロップすると、テーブルを再作成します。これは、特に大きなテーブルの場合は、行を1つずつ削除するよりもはるかに高速です。

テーブルを指す外部キーがある場合、それをドロップすることはできません。そのため、エラーメッセージが表示されます。外部キーチェックをオフにすることはお勧めしません。これは、データベースが不整合な状態になる可能性があるためです。親テーブルのすべてのレコードを削除するには、delete from tablenameを使用します。

しかし、私はあなたがなぜ薬物テーブルを切り捨てる必要があるのか​​理解していません。新薬をテーブルに挿入するだけです。

+0

ありがとうございます、あなたは正しいです、ちょうど私はすべてのデータがASCオーダーA、B、Cなどできれいに整理できると思っただけですが、 – user3929758