Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день, я хотел бы узнать как можно связать таблицы в базе данных Mysql
У меня следующие таблицы:
direction
type
unit
Сейчас я хочу создать новую таблицу main которая должна содержать поля:
create table main (mainid int(10) not null auto_increment,
dirid int(10) not null, typeid int(10) not null,
price int(10) not null,
unitid(10) not null,
primary key (mainid),
FOREIGN KEY (dirid) REFERENCES direction (dirid) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (typeid) REFERENCES type (typeid) ON DELETE RESTRICT ON UPDATE CASCADE,
FOREIGN KEY (unitid) REFERENCES unit (unitid) ON DELETE RESTRICT ON UPDATE CASCADE );
Проблема собственно в синтаксисе подскажите пожалуйста где, что нужно исправить?
direction:
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| dirid | int(10) | NO | PRI | NULL | auto_increment |
| dirname | varchar(50) | NO | | NULL | |
+---------+-------------+------+-----+---------+----------------+
type:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| typeid | int(10) | NO | PRI | NULL | auto_increment |
| typename | varchar(50) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
unit:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| unitid | int(10) | NO | PRI | NULL | auto_increment |
| unitname | varchar(50) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
Спасибо...
Неактивен
Синтаксис нормальный, только добавьте еще отдельные индексы по каждому полю,
которые упоминаются в FK.
Неактивен
т.е мне нужно добавить строчки:
key dirid (dirid),
key typeid (typeid),
key unitid (unitid)
правильно???
Неактивен
Я так и сделал... тоже самое...
Неактивен
Получаю эту ошибку...
ERROR 1064 (42000): 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 '(10) not null,
PRIMARY KEY(mainid),
FOREIGN KEY (dirid) REFERENCES direction(di' at line 6
Неактивен
вместо unitid(10) not null, должно быть unitid int(10) not null,
Неактивен
Спасибо, уже разобрался.
Неактивен