Nunca hace referencia a la timestamp
columna en tu consulta Solo tienes una cadena :
INSERT INTO `abc` (id, 'timestamp') VALUES ('', UNIX_TIMESTAMP ( NOW () ) )
^^^^^^^^^^^
Editar:
Recibo esto con tu código actualizado:
Suponiendo que todavía no sea el código real y después de corregir el error de sintaxis, no puedo reproducir sus resultados. Mi conjetura es que id
es una clave primaria entera de incremento automático, su modo SQL actual está haciendo que MySQL tome ''
como NULL
e insertar una nueva fila... Pero realmente no he probado esta hipótesis.
Mi código de trabajo es este:
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='';
... y devuelve esto:
+------------+
| timestamp |
+------------+
| 1342694445 |
| 1342694448 |
| 1342694450 |
+------------+
3 rows in set (0.00 sec)