dedlfix: Fehlermeldung bei vorhandenen Index in Mysql

Beitrag lesen

Tach!

Die is ist Unique, Auto-Increment. Der zweite Index läuft über 4 Felder, deren Kombination nur genau einmal auftreten darf.

Ich hätte ja der ID den Primärschlüssel mit Auto-Increment ergeben und die anderen vier Felder in eine Unique-Index gesteckt. Welchen Gründ siehst du denn, das andersrum zu machen?

PRIMARY KEY (date,text,invoiceNr,accountNr),
  UNIQUE KEY id (id)

Ich will, dass erst gar nichts geändert wird in der Tabelle, wenn der Eintrag in der Kombination schon existiert.

Wenn du bei einem INSERT die id oder dieselbe Kombination von date,text,invoiceNr,accountNr ein weiteres Mal einzugeben versuchst, gibt es eine Unique-Constraint-Verletzung und das Insert findet nicht statt. Außer du machst was mit ON DUPLICATE KEY UPDATE.

Erst prüfen und später schreiben ergibt auch ein TOCTTOU-Problem.
Ist ne Single-User Applikation, deshalb kann ich das Risiko abschätzen ;)
Aber natürlich auch ein Aspekt der berücksichtigt werden muss.

Ich will's ja nur mal gesagt haben, nicht dass noch jemand auf die Idee kommt, das wäre ein guter Lösungsweg.

dedlfix.