НА ДУБЛИКАТНОЙ КЛЮЧЕВОЙ ПЕРЕМЕННОЙ ТАБЛИЦЕ - PullRequest
0 голосов
/ 01 января 2012

Я пытаюсь выполнить следующий запрос mysql, я не получаю никаких ошибок, но он также не работает ?. Я просто хочу обновить имя столбца, если обнаружен дубликат. спасибо: о)

 <?php
$form_id = $_POST[form_id];
    $query = mysql_query(<<<EOT
    ALTER TABLE `email_history` ADD `$form_id` VARCHAR( 255 ) NOT NULL)
    ON DUPLICATE KEY ALTER TABLE `email_history` CHANGE `$form_id` `$form_id` VARCHAR( 255 ) NOT NULL
    EOT
    ) or die(mysql_error());
        ?>

Редактировать >>>>>>> Единственная причина, по которой я пытался обновить, была в том, что скрипт не выдает ошибку при редактировании формы. Предполагается, что при создании шаблона электронной почты он добавляет столбец в таблицу истории электронной почты, когда пользователь отправляет электронное письмо с использованием шаблона, и в этом столбце записывается дата. Проблема возникает, когда шаблон электронной почты редактируется, когда сценарий создания столбца пытается повторно создать столбец для шаблона в истории электронной почты, и я получаю сообщение об ошибке, в идеале при редактировании шаблона просто будет видно, что столбец уже существует, и не пытался создать его заново.

Ответы [ 2 ]

3 голосов
/ 01 января 2012

Нет такой вещи как ALTER TABLE ON DUPLICATE KEY.Вы должны сделать это в два шага.

  1. Получить структуру таблицы.

  2. Построить и выполнить соответствующий запрос.

1 голос
/ 01 января 2012

ON DUPLICATE KEY недопустимо для запроса ALTER TABLE.См. Документы для получения дополнительной информации: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html

...