MySQL: как сделать внешние ключи? - PullRequest
0 голосов
/ 08 августа 2010

Я хочу иметь внешний ключ в таблице, но не знаю, как это сделать.Мне бы хотелось, чтобы в таблице «стены» был столбец UserID, чтобы я мог ссылаться на него и получать данные идентификатора пользователя и т. Д. Как мне это сделать?

Настенный стол: альтернативный текст http://img821.imageshack.us/img821/7701/screenshot20100808at010.png

Таблица пользователей: альтернативный текст http://img375.imageshack.us/img375/7701/screenshot20100808at010.png

Ответы [ 2 ]

3 голосов
/ 08 августа 2010

1) Чтобы столбец внешнего ключа с именем userid в таблице WALL был создан, необходимо создать столбец - перейдите к # 2, если столбец уже существует:

ALTER TABLE WALL
  ADD COLUMN userid INT(25) NOT NULL

Если вы хотите, чтобы записи WALL существовали без указания идентификатора пользователя:

ALTER TABLE WALL
  ADD COLUMN userid INT(25) NULL

2) Теперь вы добавили ограничение внешнего ключа :

ALTER TABLE WALL
 ADD FOREIGN KEY (userid) REFERENCES USERS(userid)
1 голос
/ 08 августа 2010

Добавьте столбец UserID в таблицу Wall, а затем создайте для него внешний ключ.В SQL это выглядело бы так:

CREATE TABLE Wall (
    ...
    UserID INT,
    ...
    FOREIGN KEY (UserID) REFERENCES User (UserID) ON UPDATE CASCADE ON DELETE RESTRICT,
    ...
) ENGINE=InnoDB;

Обратите внимание, что вы, возможно, не хотите иметь ОГРАНИЧЕНИЕ НА УДАЛЕНИЕЭто самый ограничительный вариант.Читайте об этом на веб-сайте MySQL: http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...