Sql запрос

Тема в разделе "SQL", создана пользователем tstf, 27 дек 2006.

  1. tstf

    tstf Гость

    Не выполняется SQL запрос на Mysql 4.0 4.1 В чём проблема?

    [sql]CREATE TABLE answers (
    idAnswer int(11) NOT NULL auto_increment,
    answ1 char(254) NOT NULL default '',
    answ2 char(254) NOT NULL default '',
    answ3 char(254) NOT NULL default '',
    true tinyint(4) NOT NULL default '0',
    idQuestion int(11) NOT NULL default '0',
    PRIMARY KEY (idAnswer),
    KEY indx (idQuestion),
    CONSTRAINT `answers_ibfk_1` FOREIGN KEY (`idQuestion`) REFERENCES `questions` (`idQuestion`) ON DELETE CASCADE ON UPDATE CASCADE
    ) TYPE=InnoDB;
    INSERT INTO answers VALUES (1,'ответ_1 1856','ответ_2 1856','ответ_3 1856',1,1);
    INSERT INTO answers VALUES (2,'ответ_1 1856','ответ_2 1856','ответ_3 1856',1,2);
    INSERT INTO answers VALUES (3,'ответ_1 1856','ответ_2 1856','ответ_3 1856',1,3);
    INSERT INTO answers VALUES (4,'ответ_1 8577','ответ_2 8577','ответ_3 8577',1,4);
    INSERT INTO answers VALUES (5,'ответ_1 3235','ответ_2 3235','ответ_3 3235',1,5);
    INSERT INTO answers VALUES (6,'ответ_1 5473','ответ_2 5473','ответ_3 5473',1,6);
    INSERT INTO answers VALUES (7,'ответ_1 6620','ответ_2 6620','ответ_3 6620',1,7);
    INSERT INTO answers VALUES (8,'ответ_1 7917','ответ_2 7917','ответ_3 7917',1,11);
    INSERT INTO answers VALUES (9,'ответ_1 6916','ответ_2 6916','ответ_3 6916',1,12);
    INSERT INTO answers VALUES (10,'ответ_1 1963','ответ_2 1963','ответ_3 1963',1,13);[/sql]

    Спасибо.
     
  2. 62316e

    62316e Гость

    Проблема вроди тут:
    Код (Text):
    CONSTRAINT `answers_ibfk_1` FOREIGN KEY (`idQuestion`) REFERENCES `questions` (`idQuestion`) ON DELETE CASCADE ON UPDATE CASCADE
     
  3. tstf

    tstf Гость

    Для: 62316e
    А как исправить запрос?
     
  4. Andromeda

    Andromeda Гость

    Не в обиду tstf, но хочу рассказать маленькую историю.
    Больше всего меня раздражает когда юзер бежит ко мне с горящими глазами и кричит что-то типа: "У меня ошибка!!!!"
    Ему все равно чем я занят, он считает, что я все брошу,все пойму, потому что поню все наизусть, все и сразу разберусь. Них..чего подобного! Далее идет следующий диалог.
    Спрашиваю его:
    - Какая ошибка?
    Отвечает:
    - Я как всегда все делал, Аксесс и все такое, вдруг окошко там страшное, что с твоей базой ?!!!! - Делает страшные глаза.
    - Бля, текст ошибки можешь сказать!!!!??? ;)
    - УУУУ....ЭЭЭЭЭЭ....ААААА.... Нет.... :D
    Конец....

    Вот интересно, а на каком этапе ошибка? А какой текст ошибки?

    Ну создается ли таблица (или скрипт выложен только для обзора структуры, а таблица уже есть), существует ли таблица questions, есть ли в таблице questions значения в поле idQuestion на которые ссылаются инсёрты?

    Немножко злобно получилось, прошу не обижаться, а просто принять к сведению и посмеяться... :)
     
  5. tstf

    tstf Гость

    Для: Andromeda
    Согласен. Не дописал ;)
    Значит дело такое... Запрос отказывается выполняться ссылаясь на след. ошибку.

    Тестил на Mysql 4.0 и 4.1.

    Самое что интересное - мне сказали что

    и ещё

    <!--QuoteBegin-Andromeda+28:12:2006, 12:51 -->
    <span class="vbquote">(Andromeda @ 28:12:2006, 12:51 )</span><!--QuoteEBegin-->существует ли таблица questions, есть ли в таблице questions значения в поле idQuestion на которые ссылаются инсёрты?
    [snapback]52014" rel="nofollow" target="_blank[/snapback]​
    [/quote]
    существует и значения есть.
    вот код таблицы question

    Код (Text):
     
    CREATE TABLE questions (
    idQuestion int(11) NOT NULL auto_increment,
    text blob NOT NULL,
    idLab int(11) NOT NULL default '0',
    PRIMARY KEY (idQuestion),
    KEY indx_lb (idLab),
    CONSTRAINT `questions_ibfk_1` FOREIGN KEY (`idLab`) REFERENCES `labs` (`idLab`) ON DELETE CASCADE ON UPDATE CASCADE
    ) TYPE=InnoDB;
    INSERT INTO questions VALUES (1,'текст нового вопроса1856',6);
    INSERT INTO questions VALUES (2,'текст нового вопроса1856',6);
    INSERT INTO questions VALUES (3,'текст нового вопроса1856',6);
    INSERT INTO questions VALUES (4,'текст нового вопроса8577',5);
    INSERT INTO questions VALUES (5,'текст нового вопроса3235',3);
    INSERT INTO questions VALUES (6,'текст нового вопроса5473',7);
    INSERT INTO questions VALUES (7,'текст нового вопроса6620',6);
    INSERT INTO questions VALUES (8,'текст нового вопроса9773',6);
    INSERT INTO questions VALUES (9,'текст нового вопроса7917',6);
    INSERT INTO questions VALUES (10,'текст нового вопроса9149',6);
    INSERT INTO questions VALUES (11,'текст нового вопроса7917',6);
    INSERT INTO questions VALUES (12,'текст нового вопроса6916',6);
    INSERT INTO questions VALUES (13,'текст нового вопроса1963',6);
    Все остальные таблицы создались нормально за исключением answers.
     
  6. tstf

    tstf Гость

    решил проблему

    поменял true на trueAnsw.
     
  7. Andromeda

    Andromeda Гость

    Молодец!

    Сам разобрался. Виш как оно в жизни: сам себе не поможешь - фиг кто поможет. :D

    А я вот и не обратил даже внимания на имя поля - true :D . Стыдно мне...
    Кажется в стандарте SQL-95 (помню, что в InterBase и FireBird это называется SQL версии 3) разрешили
    использовать всяческие злобные имена типа true, но при их написании обязательно брать в двойные кавычки - по мне, так не лучшее решение, но это, само собой имхо.

    Еще раз убеждаемся - надо читать чего нам пишут в текстах сообщений ошибок и проблем на порядок меньше будет!
     
Загрузка...
Похожие Темы - Sql запрос
  1. mrtg
    Ответов:
    14
    Просмотров:
    210
  2. TonikVR
    Ответов:
    5
    Просмотров:
    1.075
  3. sery80
    Ответов:
    0
    Просмотров:
    1.422
  4. bumbarashek
    Ответов:
    4
    Просмотров:
    2.141
  5. icef1ery
    Ответов:
    8
    Просмотров:
    2.556

Поделиться этой страницей