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

Detaillierte Erklärung zur Anzeige der aktuellen Anzahl an MySQL-Verbindungen

1. Zeigen Sie die detaillierten Informationen all...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.27

Das Installationstutorial für MySQL 5.7.27 wird w...

MySQL-Implementierung des Funktionsbeispiels „lastInfdexOf“

Manchmal muss MySQL eine Funktion ähnlich zu last...

Beispiel für die Methode „Mysql implementiert Nullwerte zuerst/letzten“

Vorwort Wir wissen bereits, dass MySQL den SQL-Be...

Ausführliche Erläuterung des globalen Status des WeChat-Applets

Vorwort Im WeChat-Applet können Sie globalData vo...

Mit CSS3 lässt sich ein umdrehbarer Hover-Effekt erzielen

CSS3 implementiert einen umdrehbaren Hover-Effekt...

Vue erzielt den Top-Effekt durch V-Show

html <div Klasse="nach oben" v-show=...

(MariaDB) Umfassende Erklärung der MySQL-Datentypen und Speichermechanismen

1.1 Übersicht über Datentypen Der Datentyp ist ei...

Zusammenfassung der Nginx-Konfigurationsstandortmethode

Standortabgleichsreihenfolge 1. Übereinstimmung m...

Reines CSS, um coole Neonlichteffekte zu erzielen (mit Demo)

Ich habe kürzlich die Tutorial-Reihe zu CSS-Anima...