Vous ne vous référez jamais à l'timestamp
colonne dans votre requête. Vous n'avez qu'une chaîne :
INSERT INTO `abc` (id, 'timestamp') VALUES ('', UNIX_TIMESTAMP ( NOW () ) )
^^^^^^^^^^^
Modifier :
J'obtiens ceci avec votre code mis à jour :
En supposant que ce n'est pas encore le code réel et après avoir corrigé l'erreur de syntaxe, je ne peux pas reproduire vos résultats. Ma supposition éclairée est que id
est une clé primaire entière auto-incrémentée, votre mode SQL actuel fait que MySQL prend ''
comme NULL
et insérer une nouvelle ligne... Mais je n'ai pas vraiment testé cette hypothèse.
Mon code de travail est le suivant :
CREATE TABLE `abc` (
`pk` INT(10) NOT NULL AUTO_INCREMENT,
`id` VARCHAR(10) NULL DEFAULT NULL,
`timestamp` INT(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`pk`)
)
ENGINE=InnoDB;
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
-- Wait a few seconds
INSERT INTO abc (id, timestamp) VALUES ('', UNIX_TIMESTAMP());
SELECT timestamp FROM abc WHERE id='';
... et renvoie ceci :
+------------+
| timestamp |
+------------+
| 1342694445 |
| 1342694448 |
| 1342694450 |
+------------+
3 rows in set (0.00 sec)