主キーを追加または変更する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を使用して画像サイズを動的に変換し、サムネイルを生成します。

推薦する

MySQL コール初心者が犯しがちな 11 の間違いのまとめ

序文セキュリティ部門からSQLインジェクションやXSS攻撃の脆弱性などに関する警告メールを頻繁に受け...

CSS 標準: vertical-align プロパティ

<br />原文: http://www.mikkolee.com/13私は最近、ver...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...

Nginx+ModSecurity セキュリティモジュールの導入

目次1. ダウンロード2. 展開1.Nginxのデプロイメント2. ModSecurityの展開3....

MySQL 5.7.21 のインストールとパスワード設定のチュートリアル

MySQL5.7.21のインストールとパスワード設定のチュートリアルは次のとおりです。公式リファレン...

Linux でユーザー アカウントをロックおよびロック解除する 3 つの方法

組織内で何らかのパスワード ポリシーがすでに実装されている場合は、この記事を読む必要はありません。た...

Vueでクラススタイルを使用する方法の詳細

目次1. ブール2. 表現3. マルチクラスパッケージ4. v-bind でクラス class を直...

HTML の rel 属性の分析

.y { background: url(//img.jbzj.com/images/o_y.pn...

Linux で推奨される 9 つの優れたコード比較ツールの概要

コードを書くとき、2 つのファイル間の違い、または同じファイルの異なるバージョン間の違いを知る必要が...

HTMLボタンを中央に配置する方法

HTML ボタン自体を中央に配置するにはどうすればよいでしょうか? このアイデアは簡単に見つかります...

独自のネイティブ JavaScript ルーターを作成する方法

目次序文導入JavaScript 履歴 API独自のネイティブJSルーティングを実装するHistor...

MYSQLデータベースの最適化段階を簡単に理解する

導入面接官がこんな質問をしたことはありませんか?データベースをどのように最適化しますか?では、この質...

Javascript 操作メカニズム イベントループ

目次1. 4つのコンセプト1. JavaScriptはシングルスレッドです2. タスクキュー3. 同...