SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 17.05.2015 01:49:32

товарищ Емский
Участник
Зарегистрирован: 31.03.2010
Сообщений: 10

Необходимо разобраться с FOREIGN KEY (создать имя ограничения)

Имя ли? Но всё по порядку.

...Друзья! В одной из книг нахожу такой синтаксис:

FOREIGN KEY список столбцов REFERENCES таблица [список столбцов]
 


Как видно, здесь отсутвтвует имя ограничения. Чуть дальше в этой же книге без каких либо пояснений относительно "Ordtosales"


//тут код создания таблицы
FOREIGN KEY (snum) Ordtosales REFERENCES Salespeople,
 


Сервер Oracle ругается:

ORA-00905: missing keyword, без Ordtosales всё работает нормально.

Вот хотелось бы услышать ответы на вопросы, в данном создании ограничения Ordtosales это что такое? И если это имя ограничения, то почему на него ругается Oracle ну и соответственно, как сделать так, чтобы он не ругался? Спасибо, кто откликнется.

Неактивен

 

#2 17.05.2015 02:23:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5833

Re: Необходимо разобраться с FOREIGN KEY (создать имя ограничения)

Про оракл ничего не скажу, форум по mysql все-таки smile

Похоже, что Ordtosales имя ключа, а в книжке опечатка, синтаксис

[CONSTRAINT [symbol]] FOREIGN KEY
    [index_name] (index_col_name, ...)
    REFERENCES tbl_name (index_col_name,...)
    [ON DELETE reference_option]
    [ON UPDATE reference_option]

http://dev.mysql.com/doc/refman/5.6/en/ … -keys.html

Неактивен

 

#3 17.05.2015 13:11:02

товарищ Емский
Участник
Зарегистрирован: 31.03.2010
Сообщений: 10

Re: Необходимо разобраться с FOREIGN KEY (создать имя ограничения)

А ведь и вправду синтаксис разнится

https://docs.oracle.com/cd/E11882_01/se … sthref2059

В реализации SQL фирмой Oracle в операторе Foreign "ON UPDATE" Отсутствует напрочь, а для "ON DELETE" определены только CASCADE и SET NULL опции

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson