外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する選択 テーブル名、 列名、 制約名、 参照テーブル名、 参照列名 から INFORMATION_SCHEMA.KEY_COLUMN_USAGE どこ TABLE_SCHEMA = 'mydbname' AND REFERENCED_TABLE_NAME = 'テーブル名'; すべての外部キーステートメントをエクスポートする選択 CONCAT('ALTER TABLE ', TABLE_NAME, ' ADD CONSTRAINT ', CONSTRAINT_NAME, ' FOREIGN KEY (', COLUMN_NAME, ') REFERENCES ', REFERENCED_TABLE_NAME, '(', REFERENCED_COLUMN_NAME, ') ON DELETE CASCADE ON UPDATE CASCADE;') から INFORMATION_SCHEMA.KEY_COLUMN_USAGE どこ TABLE_SCHEMA = 'mydbname' かつ、REFERENCED_TABLE_NAME が NULL ではありません。 すべての外部キーステートメントを削除する選択 CONCAT('ALTER TABLE', テーブル名, 'DROP FOREIGN KEY', 制約名, ';') から INFORMATION_SCHEMA.KEY_COLUMN_USAGE どこ TABLE_SCHEMA = 'mydbname' かつ、REFERENCED_TABLE_NAME が NULL ではありません。 自動増分自動増分フィールドを作成するためのステートメントをエクスポートします選択 CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', 'MODIFY COLUMN `', COLUMN_NAME, '` ', UPPER( COLUMN_TYPE ), ' NOT NULL AUTO_INCREMENT COMMENT "',COLUMN_COMMENT,'";' ) を 'ADD_AUTO_INCREMENT' として追加します から 情報スキーマ.COLUMNS どこ TABLE_SCHEMA = 'mydbname' AND EXTRA = UPPER( 'AUTO_INCREMENT' ) 注文する テーブル名ASC; すべての自動増分フィールドを作成および削除する選択 CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', 'MODIFY COLUMN `', COLUMN_NAME, '` ', UPPER( COLUMN_TYPE ), ' NOT NULL;' ) を 'DELETE_AUTO_INCREMENT' として から 情報スキーマ.COLUMNS どこ TABLE_SCHEMA = 'mydbname' AND EXTRA = UPPER( 'AUTO_INCREMENT' ) 注文する テーブル名ASC; 索引すべてのインデックスをエクスポート選択 連結( 'ALTER TABLE `'、 テーブル名、 '` ', '追加 '、 もし ( 非ユニーク = 1、 場合 UPPER(インデックスタイプ) 「FULLTEXT」の場合 「フルテキストインデックス」 「空間」の場合 '空間インデックス' ELSE CONCAT( 'インデックス `', INDEX_NAME, '` USING ', INDEX_TYPE ) 終わり、 もし ( UPPER( INDEX_NAME ) = 'PRIMARY', CONCAT( 'PRIMARY KEY USING ', INDEX_TYPE ), CONCAT( 'UNIQUE INDEX `', INDEX_NAME, '` USING ', INDEX_TYPE ))), CONCAT( '(`', 列名, '`)' ), ';' ) 'ADD_ALL_INDEX' として から 情報スキーマ.統計 どこ TABLE_SCHEMA = 'mydbname' 注文する テーブル名 ASC、 インデックス名ASC; すべてのインデックスを削除選択 CONCAT( 'ALTER TABLE `', TABLE_NAME, '` ', CONCAT( 'DROP ', IF ( UPPER( INDEX_NAME ) = 'PRIMARY', 'PRIMARY KEY', CONCAT( 'INDEX `', INDEX_NAME, '`' ))), ';' ) AS 'DELETE_ALL_INDEX' から 情報スキーマ.統計 どこ TABLE_SCHEMA = 'mydbname' 注文する テーブル名ASC; データ結合データの移行やマージを行う際にさらに難しいのは、異なるデータベースの主キーが重複しているため、主キーの値を一括で変更する必要があることです。重複を避けるために、自動増分番号を文字列に変更することができます。 手順は基本的に次のとおりです
主キーの値を変更するときは注意してください
例えば 自己制約の削除 テーブル `t_director` を変更し、外部キー `fk_directorpid` を削除します。 値を変更 t_director を更新し、directorid=directorid+100000000 を設定します。 t_directorを更新し、directorid=CONV(directorid,10,36)を設定します。 t_director を更新し、directorpid=directorpid+100000000 を設定します。ここで、directorpid は null ではありません。 t_director を更新し、directorpid が null ではない場合に directorpid=CONV(directorpid,10,36) を設定します。 自己制約の追加 ALTER TABLE t_director に、制約 fk_directorpid を追加し、外部キー (directorpid) を参照します。t_director(directorid) は、ON DELETE CASCADE、ON UPDATE CASCADE です。 知らせ
上記はMysqlのインデックスと制約のサンプルステートメントの詳細です。MySQLのインデックスと制約の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Dockerは起動されていないコンテナの設定情報を変更します
>>: Vue3 (III) ウェブサイトホームページレイアウト開発
echarts コンポーネントの公式ウェブサイト アドレス: https://echarts.apa...
目次クラスコンポーネント機能コンポーネントsetStateの落とし穴React では多くの場所でデー...
CSS3 を使用して、クールなレーダースキャン画像を実現します。 コード上で直接: // インデック...
序文:デジタル加算ボタンと減算ボタンの実装には、次のような多くのソリューションがこれまでに使用されて...
目次1. インストール前の準備、インストールパッケージのダウンロード1 インストールの準備2 インス...
1. マスタースレーブレプリケーションとは何ですか?マスタースレーブレプリケーションは、スレーブデー...
導入データベースを使用したことがある人なら、機能面での like 記号と = 記号の類似点と相違点を...
作業の過程で、暗黙的な変換が発生するケースが数多くあります。暗黙的な変換は、クエリの速度低下を引き起...
CSS命名規則(ルール) よく使われるCSS命名規則ヘッダー: ヘッダーコンテンツ: コンテンツ/コ...
トランザクション ログには、関連するデータベースに対する操作が記録され、データベースの回復に関連する...
1. 実装のアイデアインターフェース署名の目的は、リクエストパラメータが改ざんされていないか、リクエ...
導入された HTML タグは、必ずしも XHTML 仕様に完全に準拠しているわけではありません。実際...
1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...
序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...