auto_increment для двух таблиц - PullRequest
0 голосов
/ 16 мая 2018

В моей базе данных есть две таблицы для пользователей.

users:

id|username|password|registration_date|
1 |bruce   |******  |2017-03-04       |
2 |jason   |*****   |2017-03-06       |
3 |brad    |******* |2017-03-12       |

google_users:

id|username|password|registration_date|
1 |jimmy   |*****   |2017-03-05       |
2 |wade    |******* |2017-03-08       |

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

Примерно так:

users:

id|username|password|registration_date|
1 |bruce   |******  |2017-03-04       |
3 |jason   |*****   |2017-03-06       |
5 |brad    |******* |2017-03-12       |

google_users:

id|username|password|registration_date|
2 |jimmy   |*****   |2017-03-05       |
4 |wade    |******* |2017-03-08       |

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Не предлагается, но если вы действительно хотите, чтобы это произошло так:

Вы можете попробовать реализовать этот параметр в MySQL:

mysql> SHOW VARIABLES LIKE 'auto_inc%';
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 2     |

и затем для ваших таблиц вы можете сделать:

ALTER TABLE users AUTO_INCREMENT = 1;
ALTER TABLE google_users AUTO_INCREMENT = 2;

Итак, теперь ваше автоинкремент будет увеличено на 2, и это даст вам ожидаемый результат.

Но, как я уже сказал, это повлияет на всю вашу БД. Все ваши приращения будут сделаны на 2 вместо 1.

0 голосов
/ 16 мая 2018

Я собираюсь голосовать против этой схемы таблиц и рекомендую, чтобы вы просто вели таблицу с одним пользователем:

users (id, username, password, registration_date)

Чтобы отслеживать метод, с помощью которого они зарегистрировались, вы можете создатьвторая таблица:

accounts (id, user_id, type_id)

type_id может указывать на еще одну третью таблицу, указывающую, был ли Google или что-то еще источником регистрации.Также обратите внимание, что таблица accounts может иметь пользователя с несколькими отношениями регистрации, если вам это понадобится.

Основная идея заключается в том, что поддержание столбца с автоинкрементом для двух таблиц будет либо невозможным, либопо крайней мере, некрасиво.Это не та функция, которая обычно поддерживается / нужна в SQL.Так что, если вы обнаружите, что у вас есть такая потребность, вы должны сначала внимательно изучить дизайн вашей базы данных.

...