использование AUTO_INCREMENT для комбинированных клавиш - PullRequest
0 голосов
/ 12 января 2020

Я использую MySQL для проекта базы данных, и одна из моих таблиц использует комбинированные ключи в качестве PK, entry_ID + user_ID (FK).

Это структура таблицы:

| address_list | CREATE TABLE `address_list` (
  `entry_ID` int(11) NOT NULL AUTO_INCREMENT,
  `user_ID` int(11) NOT NULL,
  `addrs_1` varchar(255) NOT NULL,
  `addrs_2` varchar(255) DEFAULT NULL,
  `city` varchar(255) NOT NULL,
  `state` varchar(255) NOT NULL,
  `zip_code` varchar(255) NOT NULL,
  `country` varchar(255) NOT NULL,
  `phone` varchar(255) NOT NULL,
  PRIMARY KEY (`entry_ID`,user_ID),
  KEY `user_Fk` (`user_ID`),
  CONSTRAINT `user_Fk` FOREIGN KEY (`user_ID`) REFERENCES `customer` (`user_ID`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |

Я пытаюсь добиться автоматического увеличения entry_ID для каждого пользователя в отдельности, вот пример того, как таблица может выглядеть после выполнения некоторых вставок.

Есть ли способ сделать это, просто используя MySQL?

 user_ID           entry_ID
----------------------------
        1   |    1
        2   |    1
        1   |    2
---------------------------

1 Ответ

1 голос
/ 13 января 2020

Я бы использовал DEFAULT, если бы он был auto_increment при вставках.

INSERT INTO address_list ( address_list.entry_ID, address_list.user_ID, address_list.addrs_1, address_list.city, state, address_list.zip_code, country, phone ) 
VALUES (DEFAULT , 4, '234 Example Ave', 'Las Vegas', 'NV', '23569','USA','987-654-3210'); 

Example

Надеюсь, это то, что спросили! если не правда извините!

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