Postgre или MySQL идентификатор столбца автоинкремент - PullRequest
0 голосов
/ 15 декабря 2018

У меня вопрос о первичных ключах в postgre или mysql.

Итак:

В mongodb идентификаторы не являются целыми числами, они представляют собой некоторые уникальные значения, такие как "507f191e810c19729de860ea".Это помогает, когда вы хотите синхронизировать записи из нескольких идентификаторов.Они никогда не будут совпадать (или шансы невелики).Таким образом, я могу получить запись из одной базы данных и вставить ее в свою базу данных без конфликтов в ограничении первичного ключа идентификатора.

Поэтому мой вопрос заключается в том, что есть аналогичные функции в базах данных Postgre SQL или MySQL.

Я знаю, что могу создать идентификатор с помощью php / nodejs / python, но я предпочитаю использовать что-то автоматическое и простое из самой базы данных.

Я могу сделать свою процедуру / функцию в базе данных, но я избегаю этого - яхотите, чтобы база данных обрабатывала это автоматически (как это делает mongodb).

Есть ли недостатки этого подхода?

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

В PostgreSQL вы можете сгенерировать UUID.

Сначала вам нужно убедиться, что у вас установлено расширение:

CREATE EXTENSION IF NOT EXISTS "uuid-ossp";

, а затем использовать функцию uuid_generate_v4 для генерацииUUID.Если вы не хотите не забывать вставлять его каждый раз, вы можете просто определить его как значение по умолчанию вашего первичного ключа:

CREATE TABLE mytable (
  id UUID DEFAULT uuid_generate_v4() PRIMARY KEY,
  -- other columns as needed...
);
0 голосов
/ 15 декабря 2018

Вы можете использовать SERIAL следующим образом:

CREATE TABLE table_name(
    id SERIAL
);

Это похоже на автоматическое увеличение в SQL.

...