Что такое замена 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}.