Что такое замена uniqueidentifier в Mysql

у меня есть запрос от SQL Server, который я хочу запустить в Mysql. но я не могу найти замены uniqueidentifier ключевое слово из сценария SQL Server в сценарий MYSQL.

запрос

 CREATE TABLE foo(
  myid uniqueidentifier NOT NULL,
  barid uniqueidentifier NOT NULL
)

каким будет запрос в Mysql для того же сценария выше SQL Server?

4 ответов


CREATE TABLE FOO (
myid CHAR(38) NOT NULL,
barid CHAR(38) NOT NULL
);

согласно веб-сайту MS, GUID имеют длину 38 символов.


принятый ответ, хотя и не совсем неправильно, несколько неполным. Конечно, есть более эффективные способы хранения GUID/UUID. Пожалуйста, посмотрите на этот вопрос: "хранение MySQL GUID/UUID"

Это лучший способ, которым я мог бы придумать, чтобы преобразовать MySQL GUID / UUID, сгенерированный UUID () в двоичный(16):

UNHEX(REPLACE(UUID(),'-',''))

а затем сохранить его в двоичном формате (16)

Если объем запоминающего устройства GUID / UUID основная забота этот метод поставит значительно сбережения.


в соответствии с веб-сайтом MySQL вы должны сопоставить его с VARCHAR (64)

UNIQUEIDENTIFIER,   VARCHAR(64)

http://dev.mysql.com/doc/workbench/en/wb-migration-database-mssql-typemapping.html


Помните также, что 16-байтовое значение представлено в hex как 32 байта. С 4 тире и 2 фигурные скобки, что дает нам 38 байт в этом формате, совместимом с SQL Server с 38-байтовой строкой. Например: {2DCBF868-56D7-4BED-B0F8-84555B4AD691}.