ПОМОГИТЕ найти ошибку в синтаксисе MySQL

Тема в разделе "Базы данных", создана пользователем andre740, 6 фев 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. andre740

    andre740

    Регистр.:
    17 апр 2006
    Сообщения:
    523
    Симпатии:
    157
    У меня проблема:
    При выполнении запроса к базе:

    CREATE TABLE `dle_referals` (
    `id` int(11) unsigned NOT NULL auto_increment,
    `user_id` int(11) NOT NULL default '',
    `ip` varchar(15) NOT NULL default '',
    PRIMARY KEY (`id`)
    UNIQUE KEY `id` (`id`)
    );
    ALTER TABLE `dle_users` ADD `referals` INT(11) NOT NULL default '0';

    ****
    Выдает ошибку:
    1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'UNIQUE KEY `id` (`id`)
    )' at line 6
    ***
    Где что неправильно?
     
  2. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    здесь
    Код:
    `ip` varchar(15) NOT NULL default '',
    запятая в конце не лишняя будет?
     
  3. SHAKAL

    SHAKAL Создатель

    Регистр.:
    30 мар 2007
    Сообщения:
    10
    Симпатии:
    3
    Код:
    CREATE TABLE `dle_referals` (
    `id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
    `user_id` int( 11 ) NOT NULL default '',
    `ip` varchar( 15 ) NOT NULL default '',
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `id` ( `id` ) 
    )
    ALTER TABLE `dle_users` ADD `referals` INT(11) NOT NULL default '0';
    Ты после PRIMARY KEY ( `id` ) запятую пропустил...
     
  4. andre740

    andre740

    Регистр.:
    17 апр 2006
    Сообщения:
    523
    Симпатии:
    157

    Добавил запятую. Вот что теперь пишет:

    Ошибка

    SQL-запрос:

    CREATE TABLE `dle_referals` ( `id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
    `user_id` int( 11 ) NOT NULL default '',
    `ip` varchar( 15 ) NOT NULL default '',
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `id` ( `id` )
    ) ALTER TABLE `dle_users` ADD `referals` INT( 11 ) NOT NULL default '0'


    Ответ MySQL: Перейти по ссылке
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'ALTER TABLE `dle_users` ADD `referals` INT(11) NOT NULL default
     
  5. ozware

    ozware

    Регистр.:
    22 апр 2007
    Сообщения:
    327
    Симпатии:
    42
    перед ALTER TABLE нужно поставить точку с запятой

    ЗЫ: учите sql, это же самое элементарное:read:
     
  6. andre740

    andre740

    Регистр.:
    17 апр 2006
    Сообщения:
    523
    Симпатии:
    157
    ВСЕ!
    Нашел ошибку..
    Надо было тут 2 запроса сделать..:
    Первый:

    CREATE TABLE `dle_referals` (
    `id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
    `user_id` int( 11 ) NOT NULL default '',
    `ip` varchar( 15 ) NOT NULL default '',
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `id` ( `id` )
    )

    И второй:

    ALTER TABLE `dle_users` ADD `referals` INT(11) NOT NULL default '0'


    Всем спасибо!
     
  7. agent_smit

    agent_smit Постоялец

    Регистр.:
    12 дек 2008
    Сообщения:
    60
    Симпатии:
    11
    Правильно 2-а запроса, просто каждый запрос должен заканчиваться точкой с запятой:
    CREATE TABLE `dle_referals` (
    `id` int( 11 ) unsigned NOT NULL AUTO_INCREMENT ,
    `user_id` int( 11 ) NOT NULL default '',
    `ip` varchar( 15 ) NOT NULL default '',
    PRIMARY KEY ( `id` ) ,
    UNIQUE KEY `id` ( `id` )
    );
    ALTER TABLE `dle_users` ADD `referals` INT(11) NOT NULL default '0';
     
Статус темы:
Закрыта.