Hoe kopieer je een rij en voeg je deze in dezelfde tabel met een autoincrement in MySQL?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dendeze ikke

dendeze ikke

13/10/2013 11:54:03
Quote Anchor link
Hallo,

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 ?
 
PHP hulp

PHP hulp

17/11/2024 11:50:29
 
Eddy E

Eddy E

13/10/2013 11:59:58
Quote Anchor link
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
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/10/2013 12:00:04
Quote Anchor link
De primary key kolom niet meenemen in de INSERT.
 
- SanThe -

- SanThe -

13/10/2013 12:00:28
Quote Anchor link
UPDATE gebruiken.
 
Obelix Idefix

Obelix Idefix

13/10/2013 12:00:37
Quote Anchor link
Je hebt het over 'toevoegen' (INSERT) terwijl je wilt 'wijzigen' (UPDATE).

UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
 
Eddy E

Eddy E

13/10/2013 12:01:47
Quote Anchor link
En dan kom ik dus op zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
INSERT INTO tabel
(
    kolom1,
    kolom 2
)
SELECT
    kolom1,
    kolom2
FROM tabel
WHERE id = 123456;


En dan selecteer je het ID dus gewoon NIET mee.
 
Dendeze ikke

dendeze ikke

13/10/2013 12:18:17
Quote Anchor link
- 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


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.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

13/10/2013 12:52:57
Quote Anchor link
Nogmaals, als je een nieuwe rij wilt invoegen moet je die niet hetzelfde id meegeven, maar het opnieuw laten genereren.
 
Dendeze ikke

dendeze ikke

13/10/2013 14:38:47
Quote Anchor link
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= "SELECT * FROM bericht WHERE bevestig ='".$_SESSION['confirmatie']."' LIMIT 1 ";
?>
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.