/ Ako kopírovať záznam prostredníctvom CHOP? php, mysql, pdo

Ako kopírovať záznam prostredníctvom CHOP? php, mysql, pdo

Potrebujem duplicitné záznamy prostredníctvom PDO. Môžeš mi pomôcť?

odpovede:

0 pre odpoveď č. 1

použitie INSERT ... SELECT

Napríklad;

INSERT INTO `foo` (`name`)
(SELECT `name`
FROM `foo`
WHERE `id` = 1)

Stručne povedané, budete musieť zadať názvy polí (don "t pridať primárne kľúče do zoznamu polí na INSERT alebo SELECT).

Ilustrovaný príklad

CREATE TABLE `dupe` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`name` varchar(5) NOT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1;

INSERT INTO `dupe` (id, name) VALUES(1, "bar");

Takže teraz máme stôl s primárnym kľúčom, takže nemôžeme "ľahko" duplikovať riadky.

INSERT INTO `dupe`
SELECT * FROM `dupe` WHERE `name` = "bar"

[Err] 1062 - Duplicate entry "1" for key "PRIMARY"

Ach, dobre. Zadajte polia, ktoré chceme duplikovať hodnoty.

Chceme duplikovať prvý riadok, spustili by sme;

INSERT INTO `dupe` (`name`)
SELECT `name` FROM `dupe` WHERE `name` = "bar";

Teraz sme duplikovali riadok, ale nie primárny kľúč.

mysql> select * from dupe;
+----+------+
| id | name |
+----+------+
|  1 | bar  |
|  2 | bar  |
+----+------+
2 rows in set