主キーを追加または変更するMySQL SQL文操作

主キーを追加または変更するMySQL SQL文操作

テーブルフィールドを追加する

テーブルtable1を変更し、トランザクタvarchar(10)をNull以外で追加します。
テーブル table1 を変更し、ID int unsigned not Null auto_increment 主キーを追加します。

テーブルのフィールドタイプを変更し、空または空でないとして指定します。

テーブルテーブル名を変更します。フィールド名フィールド名フィールドタイプ[空でない値が許可されるかどうか]。

テーブル名を変更し、フィールド名とフィールド タイプを変更します [空でない値が許可されるかどうか]。

テーブル名を変更し、フィールド名とフィールド タイプを変更します [空でない値が許可されるかどうか]。

テーブルのフィールド名を変更し、空または空でないとして指定します。

テーブルを変更する テーブル名 フィールドを変更する 元の名前 フィールド 新しい名前 フィールドタイプ [空でない値が許可されるかどうか

フィールドを削除する

ALTER TABLE mytable DROP 列名;

一意のキーを追加する

ALTER TABLE `test2` ADD UNIQUE ( `userid`)

主キーを変更する

ALTER TABLE `test2` 主キーを削除し、主キー ( `id` ) を追加します。

インデックスの追加

テーブル `test2` を変更してインデックスを追加します ( `id` )
ALTER TABLE `category` MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST 、ADD PRIMARY KEY (`id`);

主キーを変更するためのSQL文ブロックは次のとおりです。

メールボックス テーブルの新しいフィールド

存在する場合はプロシージャを削除してください。mailbox_column_update;
CREATE PROCEDURE mailbox_column_update() 開始
 -- 削除フラグ列を追加します IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_flag') THEN
   ALTER TABLE メールボックス ADD delete_flag int DEFAULT 2 NOT NULL;
 終了の場合;
 -- 新しい削除日列を追加します。IF NOT EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_date') THEN
   ALTER TABLE メールボックス ADD delete_date int DEFAULT 0 NOT NULL;
 終了の場合;
 -- フィールド account_mail が存在する場合は、フィールドの長さを変更します IF EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='email_account')
 それから
  テーブルmailboxを変更し、列email_account varchar(320)を変更します。
 終了の場合;
 -- 主キー列がない場合は、二重主キーを設定しますIF ((SELECT count(*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA ='cbs' AND table_name='mailbox' AND CONSTRAINT_NAME ='PRIMARY' AND (COLUMN_NAME ='email_account' OR COLUMN_NAME = 'company_id'))=0)THEN
    ALTER TABLE メールボックスに主キー (company_id,email_account) を追加します。
 -- 主キー列が1つしかない場合 ELSEIF ((SELECT count(*) FROM information_schema.KEY_COLUMN_USAGE WHERE TABLE_SCHEMA ='cbs' AND table_name='mailbox' AND CONSTRAINT_NAME ='PRIMARY' AND (COLUMN_NAME ='email_account' OR COLUMN_NAME = 'company_id'))<2) THEN
    ALTER TABLE mailbox DROP PRIMARY KEY、ADD 主キー (company_id,email_account);
 終了の場合;
  
終わり;
mailbox_column_update() を呼び出します。
存在する場合はプロシージャを削除してください。mailbox_column_update;

補足:mysqlは主キーを自動的に増加させるように変更し、結合主キーを追加します

ALTER TABLE `onduty_history`
MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST ,
列 `name` varchar(50) を変更する 文字セット utf8 照合 utf8_general_ci は `id` の後に NULL ではありません。
列 `onduty_date` datetime を `name` の後に NULL 以外に変更します。
一意のキー (`id`) を追加します。
主キーを追加します (`name`、`onduty_date`);

上記は私の個人的な経験です。参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。間違いや不備な点がありましたら、遠慮なくご指摘ください。

以下もご興味があるかもしれません:
  • MySQL の自動増分主キーに関する詳細な説明
  • Mysql 主キー UUID と自動増分主キーの違いと利点と欠点
  • MySQL主キー命名戦略関連
  • MySQL の自動増分主キーが使い果たされた場合の対処方法
  • MySQL の自動増分 ID (主キー) が不足した場合の解決策
  • MySQL が uuid または snowflake id を主キーとして使用することを推奨しない理由の詳細な分析
  • MySQL テーブルにおける非主キー列オーバーフロー監視の詳細な説明
  • Prometheus を使用して、MySQL の自動増分主キーの残りの使用可能パーセンテージをカウントします。

<<:  ウェブページを作る前に、これらのいわゆる仕様を見てみましょう

>>:  nginxを使用して画像サイズを動的に変換し、サムネイルを生成します。

推薦する

Vue lazyload 画像遅延読み込み例の詳細な説明

ドキュメント: https://github.com/hilongjw/vue-lazyload 1...

SQL Server 2019 Always On クラスターの Docker デプロイメントの実装

目次Docker デプロイメント Always on クラスターDockerをインストールする建築関...

Linux のユーザーとグループ管理によく使われるコマンドの概要

この記事では、Linux のユーザーとグループの管理によく使用されるコマンドをまとめます。ご参考まで...

nginx+WordPressで個人ブログを構築するプロセス全体の詳細な説明

0x00 はじめにWordPress は、世界で最も人気のある CMS システムです。PHP と M...

Rabbitmq heartbea ハートビート検出メカニズムの原理の分析

序文RabbitMQ を使用する場合、一定期間クライアントと RabbitMQ サーバーの間でトラフ...

MySQL のデッドロックとデータベースおよびテーブル シャーディングの問題の詳細な説明

MySQL 運用上の問題点を記録します。ビジネスシナリオと問題の説明外部インターフェースをリクエスト...

CSS と JS を使用して下線効果を実装する方法の例

この記事では、主に 2 種類の下線の動的効果について説明します。1 つ目は、ホバーすると X 軸が内...

Reactの二次連携を実現する方法

この記事では、二次リンクを実現するためのReactの具体的なコードを参考までに共有します。具体的な内...

MySQL InnoDB ロックの概要

目次1. 共有ロックと排他ロック2. 意図ロック3. レコードロック4. ギャップロック5. ネクス...

イントラネット侵入を実現するためのSSHポート転送

LAN 内のマシンは外部ネットワークにアクセスできますが、外部ネットワークは内部ネットワークにアクセ...

JS は Baidu 検索ボックスを実装します

この記事の例では、Baidu検索ボックスを実装するためのJSの具体的なコードを参考までに共有していま...

フロントエンドの vue+express ファイルのアップロードとダウンロードの例

新しいserver.jsを作成する糸初期化 -y 糸を追加エクスプレスノードモン -D var ex...

Linux システムで PATH 環境変数を設定する方法 (3 つの方法)

1. Windows システムでは、JDK のインストールなど、多くのソフトウェアのインストールで...

Vue3 スロットの使用状況の概要

目次1. Vスロットの紹介2. 匿名スロット3. 名前付きスロット4. スコープ付きスロット5. 動...

Ubuntu は、Mysql+Keepalived の高可用性実装 (デュアルアクティブ ホットスタンバイ) を構築します。

Mysql5.5 デュアルマシン ホットスタンバイ実装 2つのMySQLをインストールするMySQ...