FlaskでSQLAlchemyを使用してデータベーステーブルを作成しています - すべてのテーブルに少なくとも1つの外部キーがあります - SQLではなくSQLで動作します - MySQLのテーブル(子テーブルの作成時に親テーブルは作成されません)。私は問題を解決するために "SET foreign_key_checks = 0"を使用しますが、sqliteでは動作しません。外部キーのチェックを無視するようにSQLAlchemyを設定する方法はありますか?MySQLの "SET foreign_key_checks = 0"のSQLAlchemy設定
答えて
まず、なぜ外部キー制約を無視したいのですか?外部キーを定義すると、外部表と列名を含む文字列を渡すことができます。外部表がまだ作成されていない場合でも、それらは正しく解決されます。
いずれの場合でも、強制されていない外部キーを使用する場合は、外部キー列を外部キーとして定義しないでください。単純な列として定義し、外部キーの依存関係を自分で管理してください。私の意見では良い考えではありませんが、それはできます。
"SET foreign_key_checks = 0"を追加しないと、MySQLを使用したアップグレードを使用してdb migrateスクリプトを実行しているときにテーブルを作成できません。私は理解していない "外部キーを定義すると、外部テーブルとカラム名を持つ文字列を渡すことができます"、これは私が外部キーを定義する方法です:class Author(db.Model): ... paper_id = db .Column(db.Integer、db.ForeignKey( 'papers.id')) – harryw
@harryw同じ移行の中に 'papers'テーブルがありますか? – Miguel
はい、しかし、authorsテーブルは、後で論文を作成することなく、移行スクリプトで最初に作成されるものです。これはsqliteでは問題ありませんが、mysqlでは問題ありません。どうも! – harryw
ユーザmysqlを使用している場合は、mysqlに接続し、SETグローバルを使用できます。FOREIGN_KEY_CHECKS = 0; と削除するdbテーブルを削除します。再度SET FOREIGN_KEY_CHECKS = 1;この値は外部関係のdbテーブルをチェックすることを可能にします
- 1. foreign_key_checks = 0が設定されていませんMySQL 5.0
- 2. SET FOREIGN_KEY_CHECKS = ON;
- 3. MySQL無効なデータを持つテーブルにSET FOREIGN_KEY_CHECKS = 1を設定するとどうなりますか?
- 4. Sqlalchemy psycopg2 set socket options
- 5. SQLのSETの設定フライウェイ
- 6. ウィンドウ用のsqlalchemyの設定
- 7. SET SQL_SAFE_UPDATES = 0のMySQLの更新に関する問題。
- 8. SQLAlchemy MySQLのキャッシュ?
- 9. SQLAlchemyの - コラム(MySQLの)
- 10. Postgres/SQLAlchemyにapplication_nameを設定
- 11. SQLAlchemyのインデックス制限を設定する
- 12. MySQLの設定を0にすることはできますか?
- 13. SQLAlchemyのmysqlのパラメータ化クエリ
- 14. sqlalchemy + mysqlデッドロック
- 15. Rails Migration Decimal Column:デフォルト=> 0 MySQL精度を0に再設定しますか?
- 16. Codeigniter timezone mysqlの設定
- 17. mysql sqlalchemy mysql分離エラー
- 18. SET変数を - MySQLの
- 19. Android:設定高さを0に設定
- 20. MySQL foreign_key_checksがデータベース全体に影響しますか?</p> <pre><code>SET FOREIGN_KEY_CHECKS=0; </code></pre> <p>それはエンジン全体に影響を与えるか、それは私の現在のトランザクションで行われます。私は、MySQLでこのコマンドを実行する
- 21. MySQLテーブルの設定
- 22. Keycloak MySqlの設定
- 23. MySQLのfrom_timestamp(0)
- 24. リバースエンジニアSQLAlchemy既存のMySQLデータベースの宣言クラス定義?
- 25. 参加とMySQLとSQLAlchemyのにSQLとSQLAlchemyの
- 26. SQLALCHEMY既定のFalseをnullに設定するTrue
- 27. マップの座標の境界をデフォルトに設定する(0、0)
- 28. Tkinter:キャンバスの底に0、0のコードを設定します。
- 29. scipy.sparse:ゼロを0に設定
- 30. SWI設定R0を0
sqliteはデフォルトで外部キーを強制しません。 – univerio
これは、あなたが実際に尋ねているように聞こえる* SQLAlchemy **を構成してMySQL **に外部キーチェックを無視するようにする方法はありますか?*(同時にsqliteと互換性がない) –