Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

consulta mysql - inserir dados unix_timestamp (agora ()) problema


Você nunca se refere ao timestamp coluna em sua consulta. Você só tem uma string :
INSERT INTO `abc` (id, 'timestamp') VALUES ('', UNIX_TIMESTAMP ( NOW () ) )
                       ^^^^^^^^^^^

Editar:

Eu recebo isso com seu código atualizado:

Supondo que ainda não seja o código real e depois de corrigir o erro de sintaxe, não consigo reproduzir seus resultados. Meu palpite é que id é uma chave primária inteira auto-incrementada, seu modo SQL atual está fazendo o MySQL pegar '' como NULL e inserindo uma nova linha... Mas eu realmente não testei essa hipótese.

Meu código de trabalho é 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='';

... e retorna isso:
+------------+
| timestamp  |
+------------+
| 1342694445 |
| 1342694448 |
| 1342694450 |
+------------+
3 rows in set (0.00 sec)