Einfügen von Werten in Mysql-Tabelle, wenn alle Spalten unterschiedliche Werte haben - mysql

Ich arbeite an einer Blog-Seite, aber das ProblemIch bin damit konfrontiert, ich möchte dem Benutzer erlauben, einen Blog zu erstellen, wenn und nur wenn seine / ihre Kombination aus E-Mail-Adresse, Blog-Name und Blog-Titel sich von anderen Zeilen in der Tabelle unterscheidet. Betrachten wir zum Beispiel diese Tabelle:

Email                          BlogName                                BlogTitle
[email protected]                Coder"s world                         What is coding?
[email protected]                Sql world                             What is sql?

Wenn ein Benutzer versucht, Werte einzugeben ("[E-Mail geschützt]"," Coders Worlds "," Was ist Codierung?") in der Tabelle wieder, dann wird er / sie nicht erlaubt sein. Aber wenn der Benutzer versucht, verschiedene Kombinationen von E-Mail, BlogName und BlogTitle einzufügen, dann wird er / sie erlaubt sein, dies zu tun.

Da ich Mysql ziemlich neu bin, weiß ich nicht, wie ich das machen soll, also hilf mir bitte dabei. Meine Tabellenstruktur: - Bildbeschreibung hier eingeben

Antworten:

1 für die Antwort № 1

Sie können eine eindeutige Einschränkung für die Kombination der drei Spalten hinzufügen:

ALTER TABLE `blog_table` ADD UNIQUE `unique_index`(`Email`(100), `BlogName`(100), `BlogTitle`(100));

Dieser Wille ebenfalls Entfernen Sie alle Duplikate, die möglicherweise bereits in Ihrer Blog-Tabelle vorhanden sind.

Beachten Sie, dass diese Einschränkung nur die ersten 100 Zeichen aus jeder der drei Spalten verwendet, um zu vermeiden #1071-Specified key was too long Error.


0 für die Antwort № 2

Machen Sie diese 3 Spalten einzigartig.

Hier ist ein Beispiel für das Erstellen mehrerer Felder zusammen ALTER TABLE Tabelle ADD UNIQUE ("field_1", "field_2", "field_3");


0 für die Antwort № 3
IF (SELECT 1 = 1 FROM Table WHERE [email protected] and [email protected] and [email protected]) THEN
BEGIN
#return error message do not insert
END;
ELSE
BEGIN
#insert logic here
END;
END IF;

Überprüfen Sie, ob ein übereinstimmender Datensatz in der Tabelle vorhanden ist, bevor Sie den obigen Code einfügen