sql >> データベース >  >> RDS >> Mysql

MySQLは、外部キーを無視して、すべてのテーブルを削除します

    生成されたdropステートメントのセットが役立つことがわかったので、次の調整をお勧めします。

    1. 生成されるドロップを次のようにデータベースに制限します:
    SELECT concat('DROP TABLE IF EXISTS `', table_name, '`;')
    FROM information_schema.tables
    WHERE table_schema = 'MyDatabaseName';
    

    注1:これはDROPステートメントを実行せず、それらのリストを提供するだけです。 出力を実行するには、出力を切り取ってSQLエンジンに貼り付ける必要があります。

    注2:ビューがある場合は、各DROP TABLE `VIEW_NAME`を修正する必要があります DROP VIEW `VIEW_NAME`へのステートメント 手動で。

    1. 注: http://dev.mysql .com / doc / refman / 5.5 / en / drop-table.html 、カスケードでドロップすることは無意味/誤解を招く可能性があります:

    したがって、必要に応じてdropステートメントを機能させるには、次のようにします。

    SET FOREIGN_KEY_CHECKS = 0
    

    これにより、参照整合性チェックが無効になります。したがって、必要なドロップの実行が完了したら、でキーチェックをリセットする必要があります

    SET FOREIGN_KEY_CHECKS = 1
    
    1. 最終的な実行は次のようになります。
    SET FOREIGN_KEY_CHECKS = 0;
    -- Your semicolon separated list of DROP statements here
    SET FOREIGN_KEY_CHECKS = 1;
    

    注意:SELECTの出力をより簡単に使用するには、mysql-Bオプションが役立ちます。



    1. OracleでTimestamp_to_scnとScn_to_timestampを使用するにはどうすればよいですか?

    2. php print_rに表示されているが、mysqlには保存されていないバイナリファイルの内容

    3. MySQLはNOTNULL列を追加します

    4. mySQLは重複を見つけて削除します