2016-07-13 9 views
0

Ich habe eine Tabelle mit dem Namen words, und darin möchte ich Schlüssel/Wert-Paare von Wörtern und deren Vorkommen speichern.Store Wortvorkommen in MySQL-Tabelle

Ich möchte die count Spalte eine automatisch inkrementierende Spalte machen, da ich Wörter hinzufügen möchte (aus einer C++ Anwendung) und die count automatisch automatisch erhöhen lassen. Ich dachte mir aber, dass der Tisch viel durchsucht werden würde, also machte ich word den Primärschlüssel. Ich stieß jedoch auf einen Fehler und sagte, dass ich keinen Nicht-Primärschlüssel als automatisch inkrementierende Spalte festlegen kann.

Gibt es eine Möglichkeit, dies richtig zu tun, so dass ich in die Tabelle einfügen und das Datenbankhandle inkrementieren kann und all das?

+2

Es scheint mir, dass Sie autoincrement Spaltenattribut mischen mit dem Wert durch ein UPDATE erhöhen. –

+2

Ihre Beschreibung ergibt keinen Sinn. Auto-Increment-Spalten für die Identitätsgenerierung. –

Antwort

0

Erstellen Sie eine Tabelle zum Speichern der Wörter. Die Spalte word ist der Primärschlüssel.

CREATE TABLE `words` (
    `word` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, 
    `count` int(11) NOT NULL DEFAULT '1', 
    PRIMARY KEY (`word`) 
); 

dann Ihre Worte in der Tabelle wie folgt ein:

INSERT INTO `words`(word) VALUES('car') ON DUPLICATE KEY UPDATE `count`=`count`+1; 
INSERT INTO `words`(word) VALUES('plane') ON DUPLICATE KEY UPDATE `count`=`count`+1; 
INSERT INTO `words`(word) VALUES('car') ON DUPLICATE KEY UPDATE `count`=`count`+1; 

Wenn das Wort in der Tabelle nicht vorhanden ist, nb standardmäßig 1 (dies ist in der Tabellendefinition).
Wenn schon das Wort in der Tabelle vorhanden ist, wird der Wert von nb für dieses Wort um 1 erhöht

Nach den drei Einsätzen oben enthält die Tabelle:

word | count 
car | 2 
plane | 1 

Sie müssen möglicherweise anpassen:
- die Länge der Säule word
- der Zeichensatz und Sortierung

Dokumentation: INSERT ... ON DUPLICATE KEY UPDATE Syntax

0

Sie können die Spalte für automatische Erhöhung als Primärschlüssel beibehalten und einen zusätzlichen Index hinzufügen, der nur die Spalte word enthält. Wenn Sie nach Wörtern suchen, wird dieser Index verwendet.