Mysql SQL-Anweisungsvorgang zum Hinzufügen oder Ändern des Primärschlüssels

Mysql SQL-Anweisungsvorgang zum Hinzufügen oder Ändern des Primärschlüssels

Tabellenfelder hinzufügen

alter table table1 add transactor varchar(10) not Null;
alter table table1 add id int unsigned not Null auto_increment primary key

Ändern Sie den Feldtyp einer Tabelle und geben Sie ihn als leer oder nicht leer an.

Tabelle ändern, Tabellenname, Feldname ändern, Feldname, Feldtyp ändern [ob Nicht-Leerzeichen zulässig sind];

Tabelle ändern, Tabellenname, Feldname ändern, Feldtyp [ob nicht leer erlaubt ist];

Tabelle ändern, Tabellenname, Feldname ändern, Feldtyp [ob nicht leer erlaubt ist];

Ändern Sie den Feldnamen einer Tabelle und geben Sie an, ob er leer oder nicht leer ist.

Tabelle ändern Tabellenname Feld ändern ursprünglicher Name Feld neuer Name Feldtyp [ob nicht leer sein darf

Löschen eines Felds

ALTER TABLE mytable DROP Spaltenname;

Hinzufügen eines eindeutigen Schlüssels

ALTER TABLE `test2` ADD UNIQUE ( `Benutzer-ID`)

Ändern des Primärschlüssels

ALTER TABLE `test2` DROP PRIMARY KEY ,ADD PRIMARY KEY ( `id` )

Index hinzufügen

ALTER TABLE `test2` ADD INDEX ( `id` )
ALTER TABLE `Kategorie` MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (`id`);

Der SQL-Anweisungsblock zum Ändern des Primärschlüssels lautet wie folgt

Neue Felder in der Postfachtabelle

DROP-PROZEDUR, WENN EXISTIERT: mailbox_column_update;
PROZEDUR ERSTELLEN mailbox_column_update() BEGIN
 - Fügen Sie eine Löschflaggenspalte hinzu, WENN NICHT VORHANDEN (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_flag') DANN
   ALTER TABLE-Postfach ADD delete_flag int DEFAULT 2 NOT NULL;
 ENDE, WENN;
 -- Fügen Sie eine neue Spalte mit Löschdatum hinzu, WENN NICHT VORHANDEN (SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='delete_date') DANN
   ALTER TABLE Mailbox ADD delete_date int DEFAULT 0 NOT NULL;
 ENDE, WENN;
 -- Wenn das Feld „account_mail“ vorhanden ist, ändern Sie die Feldlänge IF EXISTS(SELECT 1 FROM information_schema.COLUMNS WHERE TABLE_SCHEMA='cbs' AND table_name='mailbox' AND COLUMN_NAME='email_account')
 DANN
  Tabelle „Postfach“ ändern, Spalte „E-Mail-Konto“ ändern, varchar (320);
 ENDE, WENN;
 -- Wenn keine Primärschlüsselspalte vorhanden ist, legen Sie einen doppelten Primärschlüssel fest. WENN ((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) DANN
    ALTER TABLE-Postfach ADD-Primärschlüssel (Firmen-ID, E-Mail-Konto);
 -- Wenn nur eine Primärschlüsselspalte vorhanden ist, 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-Postfach, DROP PRIMARY KEY, ADD Primärschlüssel (Firmen-ID, E-Mail-Konto);
 ENDE, WENN;
  
ENDE;
Rufen Sie mailbox_column_update() auf;
DROP-PROZEDUR, WENN EXISTIERT: mailbox_column_update;

Ergänzung: MySQL ändert den Primärschlüssel so, dass er automatisch erhöht wird, und fügt einen gemeinsamen Primärschlüssel hinzu

ALTER TABLE `onduty_history`
MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST ,
ÄNDERN SIE DIE SPALTE `name` varchar(50) ZEICHENSATZ utf8 SORTIMENTIEREN SIE utf8_general_ci NICHT NULL NACH `id`,
ÄNDERN SIE DIE SPALTE `onduty_date` datetime NICHT NULL NACH `name`,
EINDEUTIGEN SCHLÜSSEL HINZUFÜGEN (`id`),
Primärschlüssel hinzufügen (`Name`, `Dienstdatum`);

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Ausführliche Diskussion über die automatische Inkrementierung von Primärschlüsseln in MySQL
  • Der Unterschied sowie die Vor- und Nachteile des MySQL-Primärschlüssels UUID und des automatisch inkrementierten Primärschlüssels
  • MySQL-Primärschlüssel-Benennungsstrategie im Zusammenhang
  • Was tun, wenn der Auto-Increment-Primärschlüssel in MySQL aufgebraucht ist?
  • Lösung für das Ausgehen der Auto-Increment-ID (Primärschlüssel) von MySQL
  • Detaillierte Analyse, warum MySQL die Verwendung von UUID oder Snowflake-ID als Primärschlüssel nicht empfiehlt
  • Detaillierte Erläuterung der Überwachung von Spaltenüberläufen ohne Primärschlüssel in MySQL-Tabellen
  • Verwenden Sie Prometheus, um den verbleibenden verfügbaren Prozentsatz der MySQL-Autoinkrement-Primärschlüssel zu zählen

<<:  Verwenden Sie nginx, um Bildgrößen dynamisch zu konvertieren und Miniaturansichten zu generieren

>>:  Detaillierte Erläuterung des Front-End-Systems von Vue sowie der Trennung von Front-End und Back-End

Artikel empfehlen

Eine kurze Analyse der expliziten Typkonvertierung von MySQL

CAST-Funktion Im vorherigen Artikel haben wir die...

Zusammenfassung der MySQL-Sperrwissenspunkte

Das Konzept des Schlosses ①. Im wirklichen Leben ...

Detaillierte Erklärung zur Verwendung von Titel-Tags und Absatz-Tags in XHTML

XHTML-Überschriftenübersicht Wenn wir Word-Dokume...

So zeigen Sie MySql-Indizes an und optimieren sie

MySQL unterstützt Hash- und B-Tree-Indizes. InnoD...

Tutorial zur Installation von Odoo14 aus dem Quellcode unter Ubuntu 18.04

Inhaltsverzeichnis Hintergrund dieser Serie Überb...

Beispiel für die Implementierung einer kaskadierenden MySQL-Replikation

Bei der sogenannten kaskadierenden Replikation sy...

Soll die Like-Funktion MySQL oder Redis verwenden?

Inhaltsverzeichnis 1. Häufige Fehler von Anfänger...

Detailliertes Tutorial zum Ausführen von Selenium+Chromedriver auf dem Server

1. Einleitung Ich möchte Selenium verwenden, um D...

Analyse des Quellcodes des Nginx-Speicherpools

Inhaltsverzeichnis Speicherpoolübersicht 1. Nginx...