Mysql
 sql >> Base de données >  >> RDS >> Mysql

requête mysql - problème d'insertion de données unix_timestamp ( now ( ) )

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)