mysql Datensatz hinzufügen

popeye

Grünschnabel
Hi,

habe hier ein script was das soweit macht was ich möchte, nur ich möchte das jetzt auf alle usd_usr_id anwenden die vorhanden sind. Wie mache ich das?

Zur Zeit funktioniert das nur auf die ID die ich eintrage, hier die 1.

SQL:
INSERT INTO `aqualights_verw`.`adm_user_data` (`usd_id`, `usd_usr_id`, `usd_usf_id`, `usd_value`) VALUES (NULL, '1' , '21', '1');


Vielen Dank.
 
Zuletzt bearbeitet von einem Moderator:
Ahoi.

item: Bitte, bitte den Code in Zukunft in [code=sql]mein Code[/code] setzen
item: Woher soll er die usd_usr_id nehmen?
item: Woher sollen die restlichen Daten stammen? Oder ist das immer 21 und 1?

Annahmen:
1) Die usd_usr_id nimmst du aus einer Tabelle user und dort heist die ID usr_id
2) Die Werte für usd_usf_id und usd_value sind fixwerte
3) usd_id ist auto_increment und muss darum nicht abgefüllt werden

Umsetzung
Dann kannst du das über einen INSERT INTO ... SELECT.
usd_id das automatisch abgefüllt wird, kannst du aus dem INSERT INTO entfernen
SQL:
INSERT INTO adm_user_data (usd_usr_id, usd_usf_id, usd_value) 
SELECT usr_id, '21', '1' FROM users;
 
Zuletzt bearbeitet von einem Moderator:
Hi,

die usd_usr_id kommt es der Tabelle adm_user_data. Dort sind schon mehrere Datenzätze mit der usd_usr_id. Ich möchte jetzt zu jeder usd_usr_id noch einen Datensatz einfügen bei dem die usd_usf_id = 21 und der usd_value=1 ist.

Habe dein Script abgeändert so.

SQL:
INSERT INTO adm_user_data (usd_usr_id, usd_usf_id, usd_value) 
SELECT usd_usr_id, '21', '1' FROM adm_user_data

da bekomme ich aber den Fehler

SQL-Befehl: Dokumentation

INSERT INTO adm_user_data( usd_usr_id, usd_usf_id, usd_value )
SELECT usd_usr_id, '21', '1'
FROM adm_user_data

MySQL meldet: Dokumentation
#1062 - Duplicate entry '1-21' for key 2
 
Zuletzt bearbeitet von einem Moderator:
habe noch was rumgespielt und das jetzt doch noch verstanden. Habe das Script abgeändert so:

SQL:
INSERT INTO adm_user_data( usd_usr_id, usd_usf_id, usd_value )
SELECT usr_id, '21', '1'
FROM adm_users

Jetzt habe ich nur noch das Problem das es schon Datensätze gibt mit den gleichen wert und er mäkert weil die doppelt sind. Ist ja auch klar.
Was kann ich dagegen machen?
 
Zuletzt bearbeitet von einem Moderator:
Zurück