2016-04-07 1 views
0

Je rencontre un comportement étrange sur l'une de mes tables que je n'arrive pas à localiser. Chaque fois que je tente d'effectuer une mise à jour je reçois une colonne Erreur inconnueErreur de colonne inconnue lors de la mise à jour

Lorsque je tente de lancer:

UPDATE `bakerevents` SET `score`=300 WHERE `id`=2910; 

Je reçois l'erreur suivante:

Unknown column 'bakerevents.id' in 'field list'

Quand je lance une sélection sur cette id Je reçois aucune erreur et la ligne est renvoyée:

SELECT * FROM `bakerevents` WHERE `id`=2910; 
{ 
    "data": 
    [ 
     { 
      "id": 2910, 
      "match_id": 1404, 
      "game_number": 2, 
      "school_id": 3, 
      "score": 162, 
      "result": 1, 
      "updated_at": "2014-12-20 05:31:13", 
      "create_user_id": 24, 
      "update_user_id": 0, 
      "created_at": "0000-00-00 00:00:00" 
     } 
    ] 
} 

Voir ci-dessous pour ma base de données create table s yntax:

CREATE TABLE `bakerevents` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `match_id` int(11) NOT NULL, 
    `game_number` int(11) NOT NULL, 
    `school_id` int(11) NOT NULL, 
    `score` int(11) NOT NULL DEFAULT '0', 
    `result` decimal(11,1) NOT NULL COMMENT '1=Win 0=Loss', 
    `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `create_user_id` int(11) NOT NULL DEFAULT '0', 
    `update_user_id` int(11) NOT NULL DEFAULT '0', 
    `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB AUTO_INCREMENT=7251 DEFAULT CHARSET=latin1; 

Une réflexion sur quelle est la cause de l'erreur?

+0

En outre, j'ai essayé une instruction delete et cela semble fonctionner correctement. Je semble avoir seulement le problème sur les mises à jour. D'autres tables similaires la mise à jour fonctionne correctement, c'est juste cette table. – josh088

Répondre

1

J'ai été capable de faire le suivi de ce matin. J'avais un ancien déclencheur de mise à jour sur cette table qui causait le problème. Le déclencheur ne s'est pas terminé avec succès et cela était à l'origine du problème. Une fois que j'ai retiré le déclencheur, la mise à jour s'est terminée sans erreur. Si vous rencontrez cela à l'avenir, assurez-vous de vérifier vos déclencheurs.

1

Votre erreur est étrange, car elle inclut à la fois le nom de la table et le nom de la colonne. Je m'attendrais à cette erreur pour cette version:

UPDATE `bakerevents` 
    SET `score` = 300 
    WHERE `bakerevents.id` = 2910; 

Aucun de vos noms ne doit s'échapper. Donc, essayez sans les guirlandes:

UPDATE bakerevents 
    SET score = 300 
    WHERE id = 2910; 
+0

Même message d'erreur lorsque vous essayez votre suggestion. J'ai essayé Sequel Pro, MYSQL Workbench et un terminal et tous résultent dans la même erreur. – josh088