Primärschlüssel bei temporärer Tabelle neu vergeben

exzel

SQL-Guru
Beiträge
170
Hallo zusammen,

ich wollte eine Möglichkeit eingegebene Verträge in einer DB zu dublizieren.

Doch leider bekomme ich immer die Fehlermeldung: "Column id_einkommenan cannot be NULL".
Klingt soweit schon verständlich nur komischerweise ging es unter der vorherigen Datenbank mySQL
5.0.51. Jetzt habe ich die 5.5.38 und es geht nicht mehr.

Hier der Code. Die Zahlen sind im Programmcode natürlich durch Variablen ersetzt.

CREATE TEMPORARY TABLE einkommenssituation_antmp SELECT * FROM einkommenssituation_an WHERE gruppe = '176' AND version = '2';

UPDATE einkommenssituation_antmp SET id_einkommenan = NULL;

UPDATE einkommenssituation_antmp SET version = version + 1;

INSERT INTO einkommenssituation_an SELECT * FROM einkommenssituation_antmp;


Gruß und Dank

Alex
 
Werbung:
Doch leider bekomme ich immer die Fehlermeldung: "Column id_einkommenan cannot be NULL".

Wenn das ein PK ist dann akzeptiere es. Ist halt so. Sei froh, daß MySQL mit der Zeit die größten Bomben entschäft. Sich darauf zu berufen, daß es früher ging ist KEINE Lösung und zeigt KEINE Alternative.
 
Wiso setzt du denn id_einkommenan = NULL wenn das der Primärschlüssel ist? Wiso sollte man soetwas wollen? Du musst natürlich gleich eine neue ID mit dem Update vergeben. In MSSQL nutze ich dafür immer Uniqueidentifier mit newid(), in MySQL wäre das dann einfach id_einkommenan = uuid(). Ich gehe aber mal davon aus das du irgendeine Integer auto increment Spalte hast, dafür muss man sich glaube ich eine Funktion schreiben.
 
Werbung:
Hallo zusammen,

Problem gelöst. Ich muss nun zwar alle Spaltennamen selber angeben, aber das ist in Ordnung.

Der Befehl lautet nun.

INSERT INTO pflegeversicherungpri
(version+1, id_vn, id_vp1, gruppe, gesellschaft, beginn, ablauf, beitrag, zw, pflegetagegeld, abdem, pflegekostenversicherung, ambulant, stationear, pflegerente, aktiv)
SELECT
version, id_vn, id_vp1, gruppe, gesellschaft, beginn, ablauf, beitrag, zw, pflegetagegeld, abdem, pflegekostenversicherung, ambulant, stationear, pflegerente, aktiv
FROM pflegeversicherungpri WHERE gruppe='176' AND version='2';


Danke!
 
Zurück
Oben