外部キーテーブルの主キーがどのテーブルの外部キーであるかを照会する選択 テーブル名、 列名、 制約名、 参照テーブル名、 参照列名 から 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) ウェブサイトホームページレイアウト開発
導入HibernateやMyBatisなどのORMフレームワークでは、部門に関連付けられたユーザーオ...
1. はじめにWeb プロジェクトを Linux サーバーで公開する場合、SSL 証明書を構成する必...
現在のページへのリンク。 -------------------一般的な使用法は次のとおりです。 &...
目次1. セットとは何か2. セットコンストラクタ2.1) 配列2.2) 文字列2.3) 議論2.4...
目次概要1. store.jsを定義する2. store.js を使用するコンポーネント3. 成果を...
1. 基本的な手順1: yarn add vue-i18nをインストールするこのパスに新しい .js...
この記事では、フォントサイズを調整するためのjQueryの具体的なコードを参考までに紹介します。具体...
目次1. 現実的な背景2. 合意3. マスターを構成する3.1. 起動パラメータの設定3.2. パラ...
01. コマンドの概要貼り付けコマンドは各ファイルを列ごとに結合します。これは、2 つの異なるファイ...
目次識別子の長さ制限権限テーブルの範囲フィールドの長さ制限データベースとテーブルの数の制限テーブルサ...
ポテトチップスパーティーのこのエピソードに参加して、何人かの友人に会えてとても嬉しいです。思いがけず...
docker logs コマンドを使用してコンテナ ログを表示できます。コマンド形式: $ dock...
目次機能コンポーネント非同期コンポーネントの書き方とdefineAsyncComponentメソッド...
● 新しいプロジェクトのセキュリティを確保するためにクラウド データを購入する予定でした。 Alib...
個人的には、WeChat アプレットの開発フレームワークは VUE と概ね似ていると感じていますが、...