Hoe kopieer je een rij en voeg je deze in dezelfde tabel met een autoincrement in MySQL?
zoals de tittel beschrijft probeer ik een row te selecteren uit een tabel, deze te wijzigen en terug toe te voegen in de zelfde tabel.
Maar je krijgt al als error: Duplicate entry
Iemand hier ervaring mee ?
Dus óf je KEY wijzigen, óf (en beter) gewoon als gewijzigde op te slaan.
Maar wat wil je nu?
Een rij selecteren, wijzigen en dan als NIEUWE KOPIE opslaan?
Of een rij selecteren, wijzigen en dan opslaan (overschrijven)?
Soortgelijk geval: http://stackoverflow.com/questions/4039748/in-mysql-can-i-copy-one-row-to-insert-into-the-same-table
De primary key kolom niet meenemen in de INSERT.
UPDATE gebruiken.
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
INSERT INTO tabel
(
kolom1,
kolom 2
)
SELECT
kolom1,
kolom2
FROM tabel
WHERE id = 123456;
(
kolom1,
kolom 2
)
SELECT
kolom1,
kolom2
FROM tabel
WHERE id = 123456;
En dan selecteer je het ID dus gewoon NIET mee.
- SanThe - op 13/10/2013 12:00:28:
UPDATE gebruiken.
Als update lukt dit, maar ik ik wil er een kopij van maken die dan terug bovenaan de lijst word getoond.
Toevoeging op 13/10/2013 12:21:41:
Eddy E op 13/10/2013 11:59:58:
Dan is de key (waarschijnlijk een auto-incredement) al in gebruik. En dat mag niet.
Dus óf je KEY wijzigen, óf (en beter) gewoon als gewijzigde op te slaan.
Maar wat wil je nu?
Een rij selecteren, wijzigen en dan als NIEUWE KOPIE opslaan?
Of een rij selecteren, wijzigen en dan opslaan (overschrijven)?
Soortgelijk geval: http://stackoverflow.com/questions/4039748/in-mysql-can-i-copy-one-row-to-insert-into-the-same-table
Dus óf je KEY wijzigen, óf (en beter) gewoon als gewijzigde op te slaan.
Maar wat wil je nu?
Een rij selecteren, wijzigen en dan als NIEUWE KOPIE opslaan?
Of een rij selecteren, wijzigen en dan opslaan (overschrijven)?
Soortgelijk geval: http://stackoverflow.com/questions/4039748/in-mysql-can-i-copy-one-row-to-insert-into-the-same-table
Ik wil de rij selecteren (gelukt)
dan enkele data inserten (gelukt)
en dan een nieuwe rij opslaan met de extra gegevens (niet gelukt)
in dezelfde tabel.
Nogmaals, als je een nieuwe rij wilt invoegen moet je die niet hetzelfde id meegeven, maar het opnieuw laten genereren.
Ger van Steenderen op 13/10/2013 12:52:57:
Nogmaals, als je een nieuwe rij wilt invoegen moet je die niet hetzelfde id meegeven, maar het opnieuw laten genereren.
Met een gewone insert lukt dit dus niet.
Code (php)
1
2
3
2
3
<?php
$sql = "INSERT INTO bericht(naam, achternaam) VALUES ('". mysql_real_escape_string ($_POST["naam"]) ."', '". mysql_real_escape_string ($_POST["achternaam"]) ."' )";
?>
$sql = "INSERT INTO bericht(naam, achternaam) VALUES ('". mysql_real_escape_string ($_POST["naam"]) ."', '". mysql_real_escape_string ($_POST["achternaam"]) ."' )";
?>
Hier herkent hij de post niet.
De selectie komt uit deze: