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

Vue.js-Textfeld mit Dropdown-Komponente

Ein Textfeld mit Dropdown-Liste ermöglicht es Ben...

MySQL-Fallanalyse der Transaktionsisolationsebene

Inhaltsverzeichnis 1. Theorie SERIALISIERBAR WIED...

Die beste Erklärung zu HTTPS

Guten Morgen allerseits, ich habe meinen Artikel ...

Lebenszyklus und Hook-Funktionen in Vue

Inhaltsverzeichnis 1. Was ist der Lebenszyklus 2....

So verwalten Sie Docker über die Benutzeroberfläche

Docker wird in immer mehr Szenarien verwendet. Fü...

So lösen Sie das Problem des verstümmelten MySQL-Inserts

Problembeschreibung: Beim Einfügen chinesischer Z...

Interpretation der Vue-Komponentenregistrierungsmethode

Inhaltsverzeichnis Überblick 1. Globale Registrie...

Detaillierte Erläuterung des Datenproxys und der Ereignisse von VUE

Inhaltsverzeichnis Überprüfung der Object.defineP...

Beispiel für einen Vue-Übergang zum Erreichen eines Animationseffekts

Inhaltsverzeichnis Ergebnisse auf einen Blick Her...

Der Unterschied zwischen den Größen- und Maxlength-Attributen von Input

Ich habe kürzlich die Attribute „input size“ und „...