序文 MySQL テーブルの主キーと外部キーを作成するときは、次の点に注意する必要があります。
1. データテーブルを作成し、主キーと外部キーの関係を設定するSQL文 テーブル demo.ChineseCharInfo を作成する ( ID int NULLでないauto_increment、 漢字varchar(10)がnullでない、 主キー (ID) ) エンジン=innodb auto_increment=1 デフォルト文字セット=utf8 照合=utf8_general_ci; テーブル demo.ChinesePinyinInfo を作成する ( ID int NULLでないauto_increment、 CharID int null、 ピンインvarchar(10) null, トーン tinyint unsigned null、 主キー(ID)、 -- 方法 1: 外部キー名を指定しないでください。データベースは、削除カスケードまたは更新カスケードで自動的に外部キー (CharID) 参照 ChineseCharInfo(ID) を生成します。 -- 方法2: 外部キー名(FK_Name)を指定する -- 制約 FK_Name 外部キー (CharID) は、削除カスケードおよび更新カスケードで ChineseCharInfo(ID) を参照します ) エンジン=innodb auto_increment=1 デフォルト文字セット=utf8 照合=utf8_general_ci; 2. データテーブルがすでに存在する場合は、次の方法を使用して主キーと外部キーの関係を確立します。 -- テーブル (demo.ChinesePinyinInfo) のフィールド (CharID) に外部キーを追加し、外部キー名を (FK_Name) として指定します。 alter table demo.ChinesePinyinInfo に制約 FK_Name を追加し、外部キー (CharID) は ChineseCharInfo(ID) を参照します。 -- テーブル (demo.ChinesePinyinInfo) のフィールド (CharID) に外部キーを追加します。外部キー名を指定しないでください。データベースは自動的に外部キー名を生成します。alter table demo.ChinesePinyinInfo add foreign key (CharID) references ChineseCharInfo(ID); 3. 主キー制約と外部キー制約を削除する -- 列のプロパティを変更して自動増分を削除します。最初の (ID) は元の列名で、2 番目の (ID) は新しい列名です。alter table demo.ChinesePinyinInfo change ID ID int not null; -- テーブル (demo.ChinesePinyinInfo) の主キー制約を削除します。主キー列が自動増分列である場合は、まず列の自動増分を削除する必要があります。alter table demo.ChinesePinyinInfo drop primary key; -- テーブル (demo.ChinesePinyinInfo) 内の (FK_Name) という名前の外部キーを削除します。alter table demo.ChinesePinyinInfo drop foreign key FK_Name; 4. 主キーと外部キーの関係の制約 子テーブルがプライマリ テーブルに存在しない外部キー値を作成しようとすると、データベースは挿入または更新操作を拒否します。 プライマリ テーブルが子テーブル内の既存または一致する外部キー値を更新または削除しようとする場合、最終的なアクションは、外部キー制約定義の on delete オプションと on update オプションによって異なります。 on delete と on update の両方に次の 4 つのアクションがあります。
以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
>>: Zabbix は DingTalk のアラーム機能を画像付きで設定します
Centos7 バージョンをインストールするときに、外部ネットワークへの接続を選択すると、外部ネット...
目次1. 基本的な使い方2. 指示の動作原理2.1. 初期化2.2 テンプレートのコンパイル2.3....
目次基本的なセレクタ拡張属性セレクタ疑似クラスと疑似要素セレクター基本的なセレクタ拡張1. 子要素セ...
序文最近は、PC、iPad、携帯電話、スマートウォッチ、スマートテレビなど、さまざまなデバイスが存在...
JavaScript スクリプトは HTML 内のどこにでも埋め込むことができますが、いつ呼び出され...
ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント。ウェブサイトのアクセス速度...
CSS の位置属性は要素の配置タイプを指定し、上、下、左、右を使用して要素を具体的に配置します...
日常業務では、実行に時間のかかる SQL ステートメントを記録するために、スロー クエリを実行するこ...
通常、Web サイトを構築する目的は、検索エンジンにインデックス登録してもらい、プロモーションを拡大...
たとえば、スクリーン リーダー ソフトウェアを必要とするユーザーなどです。フロントエンド開発者として...
導入メタタグは、HTML言語のHEAD領域にある補助タグです。 meta は、ページの説明、キーワー...
1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...
成果を達成する 実装コードhtml <div class="wrap"&g...
目次ループ - for forループの基本的な使い方ループを終了するネストされたループ配列配列とは何...
1. ワイヤレス ネットワーク カードを挿入し、コマンドiwconfigを使用してワイヤレス ネット...