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

推薦する

優れた登録プロセスの手順

ウェブサイトにとって、これは最も基本的な機能です。それでは、登録プロセスに含まれる手順を見てみましょ...

Reactは動的ポップアップウィンドウコンポーネントを実装します

UI コンポーネントを作成するときに、アニメーションを考慮しなければ、アニメーションを実現するのは非...

Uniapp WeChatアプレット: キー障害の解決策

ユニアプリコード <テンプレート> <表示> <image v-for...

win10 64 ビット システムに複数の JDK バージョンをインストールする際の切り替え問題と解決策の概要

コンピューターにmyeclipse2017とidea2017がインストールされているため、ideaが...

HTML テーブルタグチュートリアル (45): テーブル本体タグ

<tbody> タグは、テーブル本体のスタイルを定義するために使用されます。基本構文 &...

nginxサーバーのダウンロード、インストール、使用方法の詳細な説明

ダウンロードhttp://nginx.org/en/download.html解凍ダウンロードしたn...

忘れられたボタンタグ

注:この記事は他の人によって翻訳されていますが、考えるべき点が多く、理解しにくい点もあると感じていま...

Linux における「/」と「~」の違いの詳細な説明

「/」はルートディレクトリ、「~」はホームディレクトリです。 Linux ストレージはツリー状にマウ...

iOS スタイルの選択ボックスの開閉機能を実装するための純粋な CSS

1 効果デモアドレス: https://www.albertyy.com/2020/7/check...

MySQL 上級学習インデックスの長所と短所、使用ルール

1. インデックスの利点と欠点利点: 高速検索、高速グループ化および並べ替えデメリット: ストレージ...

Windows および Linux で tomcat9 を介して war パッケージを手動で展開する方法

Windows 環境と Linux 環境では結果が異なります。ウィンドウズステップ 1: Maven...

Nginx サーバーで Web クローラーをブロックおよび禁止する方法

通常、すべての Web サイトは、多くの非検索エンジン クローラーに遭遇します。これらのクローラーの...

異なるページ間のJavaScriptデータ転送(URLパラメータ取得)

Web ページでは、あるページに情報を入力すると、別のページにジャンプし、入力した情報が別のページ...

ARGB、RGB、RGBAの違いと紹介

ARGB は、アルファ (透明度) チャネルが追加された RGB カラー モードであり、32 ビット...

Tomcat イメージをインストールして Docker に Web プロジェクトをデプロイする方法を簡単に説明します。

1. Tomcatをインストールする1. Docker HubでTomcatイメージを見つける d...