powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как назначить внешний ключ?
2 сообщений из 2, страница 1 из 1
Как назначить внешний ключ?
    #40055376
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
CREATE TABLE visits(
    id INTEGER AUTO_INCREMENT PRIMARY KEY, 
    page_id INTEGER(30), 
    user_id INTEGER,
    s_date datetime,
    OS VARCHAR(30)


INSERT INTO orders(page_id, user_id, s_date, OS ) 
VALUES 
(5235235, 10091422, '2018-03-04 23:45:46.000', 'ubuntu'  ),
(236236, 236236, '2018-03-04 23:46:46.000', 'ubuntu'  ),
(34634634, 26236236, '2018-03-05 23:45:46.000', 'mac'  ),
(362615, 2365236, '2018-03-05 23:45:46.000', 'ubuntu'  ),
(16236236, 23523523, '2018-03-06 23:45:46.000', 'windows'  ),
(2362362, 23623623, '2018-03-07 23:45:46.000', 'ubuntu'  );
 
CREATE TABLE orders(
    id INTEGER AUTO_INCREMENT PRIMARY KEY, 
    transaction_id INTEGER(30), 
    user_id INTEGER,
    purchase_date  datetime,
    product_type VARCHAR(30),
    price INTEGER   ,
    );







Здравствуйте. Есть 2 таблицы: посетители и покупки. У обоих есть поле id но оно автоинкриминируется 1.
Я только разбираюсь в БД и у меня есть вопросы:
1) Как задать начальный индекс поля id не с 1, а скажем начиная с 101.
2)Правильно ли назначать первичный ключ на id которое стартует с 1 и автоинкриминируется, или лучше назначать его на другое поле, например user_id из первой таблицы.
3) Если уже первичный ключ и автоинкремент назначены, как их удалить? Через DROP primary key не работает.C такой пометкой (Error Code: 1075. Incorrect table definition; there can be only one auto column and it must be defined as a key
) Как это обойти?
4) ПО таблицам - как теперь уже в существующих таблицах назначить внешний ключ. я хотел бы связать поля uder_id из двух таблиц(правильно ли?) Как я вижу нужно убрать первичный ключ из первой таблицы с поля id и переназначить его на user_id и потом через ADD FOREIGN KEY(user_id) REFERENCES visits(user_id) cвязать их, но все равно, поле id в обоих таблицах служащие только для обозначения номера записи смущает. Точно не могу понять можем или нет его использоваться как первичный ключ, или возможно в таких таблицах лучше делать составной?
...
Рейтинг: 0 / 0
Как назначить внешний ключ?
    #40055551
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алекс_аморалес
1) Как задать начальный индекс поля id не с 1, а скажем начиная с 101.
Установкой соответствующей опции таблицы. Но после того, как сможешь себе доказать, что оно реально необходимо.

Алекс_аморалес
2)Правильно ли назначать первичный ключ на id которое стартует с 1 и автоинкриминируется, или лучше назначать его на другое поле, например user_id из первой таблицы.
Иногда правильно, иногда нет.

Алекс_аморалес
3) Если уже первичный ключ и автоинкремент назначены, как их удалить? Через DROP primary key не работает.C такой пометкой (Error Code: 1075. Incorrect table definition; there can be only one auto column and it must be defined as a key
) Как это обойти?
Составлением и выполнением корректного запроса.

Алекс_аморалес
4) ПО таблицам - как теперь уже в существующих таблицах назначить внешний ключ. я хотел бы связать поля uder_id из двух таблиц(правильно ли?)
Правильность определяется логикой системы, анализом, ER-диаграммой, а не высасывается из пальца.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как назначить внешний ключ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]