Предупреждение 1072 в MySql - ключевой столбец «имя» не существует в таблице` - PullRequest
1 голос
/ 21 сентября 2011

Получение предупреждения 0 row(s) affected, 1 warning(s): 1072 Key column 'name' doesn't exist in table И я не знаю, что это значит. У кого-нибудь есть объяснение?

Таблица / СП выглядит следующим образом

CREATE TABLE IF NOT EXISTS `sectors`
(
  `id`        INT(10) UNSIGNED   NOT NULL AUTO_INCREMENT ,
  `sector`    VARCHAR(25)        NOT NULL ,
                                                                           --
  PRIMARY KEY (`id`) ,
  UNIQUE  INDEX `sector_idx` USING BTREE (`sector` ASC)
);
DELIMITER $$
CREATE PROCEDURE `AddSector` (IN sector VARCHAR(25),
                              OUT result BOOLEAN)
  MODIFIES SQL DATA
BEGIN
  DECLARE CONTINUE HANDLER FOR SQLWARNING, SQLEXCEPTION SET result = FALSE;
  SET result = TRUE;
                                                                           --
  INSERT INTO `sectors` (`sector`) VALUES (sector);
  COMMIT;
END $$

1 Ответ

0 голосов
/ 26 сентября 2011

Измените процедуру на:

DELIMITER $$

CREATE PROCEDURE `AddSector` (IN pSector VARCHAR(25),  <<-- fix nameclash here
                              OUT result BOOLEAN)
  MODIFIES SQL DATA
BEGIN
  DECLARE CONTINUE HANDLER FOR SQLWARNING, SQLEXCEPTION SET result = FALSE;
  SET result = TRUE;

  INSERT INTO `sectors` (`sector`) VALUES (pSector);  <<-- and here
  --  COMMIT;  <<-- You don't need a commit.
END $$

Все содержимое внутри хранимого процесса уже выполняется внутри неявной транзакции, поэтому фиксация не требуется и может фактически быть ошибкой (не уверен) .РАЗДЕЛИТЕЛЬ;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...