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

推薦する

PHP で JSON バックスラッシュを削除する例

1. 「stripslashes($_POST['json']);」メソッドを使用し...

均一なアニメーション効果を実現するJavaScript

この記事の例では、JavaScriptで等速アニメーションを実装するための具体的なコードを参考までに...

Linux ファイルディレクトリ管理コマンドの概要

タッチコマンドこれには 2 つの機能があります。1 つは、既存のファイルの時間タグを現在のシステム時...

クラウドネイティブテクノロジー Kubernetes (K8S) の紹介

目次01 Kubernetes とは何ですか? 02 KubernetesとCompost+Swar...

MySQLシリーズのMariaDBサーバーのインストール

目次チュートリアルシリーズ1. yumパッケージマネージャーを使用してMariaDBサーバーをインス...

mysql indexof関数の使用手順

以下のように表示されます。 LOCATE(部分文字列、文字列)文字列 str 内の部分文字列 sub...

MySQLは複数テーブル関連統計(サブクエリ統計)の例を実装します

この記事では、例を使用して、MySQL で複数テーブルの関連統計を実装する方法について説明します。ご...

JavaScriptの基本的なインタラクションの詳細な説明

目次1. 要素の入手方法文書から入手ID取得クラス名 (className) を取得します。タグ名 ...

GobangゲームのWebバージョンを実装するためのJavaScript

この記事では、GobangゲームのWebバージョンを実装するためのJavaScriptの具体的なコー...

MySQL 5.7 でルートパスワードを変更する方法に関するチュートリアル

バージョンアップデートにより、元のユーザーのパスワードフィールドがauthentication_st...

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

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

win10にmysql 8.0.18-winx64をインストールする詳細な手順

1. まず公式ウェブサイトにアクセスしてMySQLインストールパッケージをダウンロードします参考: ...

MySQL 5.6 マスタースレーブエラー報告の実践記録

1. 問題の症状バージョン: MySQL 5.6、従来の binlog ファイルと pos 方式を使...

Dockerにおけるコンテナとイメージの違いについてお話ししましょう

鏡とは何ですか?イメージは、複数のイメージ レイヤー (UnionFS および AUFS ファイル ...

CSS でフローティングにより親要素の高さが崩れる問題を解決するいくつかの方法

以前は、フロートはレイアウトによく使用されていましたが、フローティングレイアウトを使用すると親要素の...