2017-01-30 1 views
2

Meine Tabelle wie folgt erstellt:Wie löschen, wenn Primärschlüssel zwei Spalten enthält, und mit abgesicherten Modus

CREATE TABLE test(
num1 INT, 
num2 INT, 
PRIMARY KEY(num1, num2) 
); 

was soll meine Lösch-Abfrage aussehen?

DELETE FROM test WHERE num1=1 AND num2=2; 

nur in dieser Fehlermeldung mit:

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. 

Auch bevor Sie fragen, ich weiß, wie sicher Update-Modus zu deaktivieren, aber das beantwortet nicht meine Frage .

+2

Es gibt keine Anforderung zu löschen basierend auf Primärschlüssel –

+0

Haben Sie Ihre Abfrage versucht? –

+0

diese Namen ändern sich nicht. Momentan suche ich noch keine Optimierung, ich möchte nur wissen, wie man diesen Primärschlüssel in ein WHERE einbindet, das erforderlich ist, wenn der abgesicherte Modus aktiviert ist. – fihgus

Antwort

2

Ich habe einige andere Stack Overflow-Posts gesehen, bei denen sich Leute beschweren, dass MySQL Workbench sie daran hindert, sichere Updates unangemessen durchzuführen.

Aber ich habe es gerade mit Ihrer Tabelle versucht, sowohl mit den PK-Spalten als auch mit einer Nicht-Schlüssel-Spalte. Wenn der abgesicherte Modus aktiviert ist, blockiert er, wie es sollte, Updates über Nicht-Schlüsselspalte. Aber ich bekomme den Fehler, den Sie beschrieben haben, nicht.

enter image description here

Ich verwende MySQL Workbench 6.3.8 und MySQL Server 8.0.0-dmr.

Vielleicht ist dies ein Fehler in einer alten Version von MySQL oder einer alten Version von MySQL Workbench.

+1

aktualisiert mysql, und es funktioniert jetzt, danke. – fihgus

0

Aktualisiert mysql und der Fehler ist weg. was für eine Verschwendung meiner Zeit.

Verwandte Themen