|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Есть таблицы из постгреса, в которых используется тип данных UUID. В постресе он есть, но что использовать и как в MariaDB для переноса таких таблиц? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 12:19 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
binary(16) с ручным перекодированием uuid в binary(16). Или вовсе текстовые. Может быть когда-нибудь, но пока задача уже 4 года как с major приоритетом https://jira.mariadb.org/browse/MDEV-4958 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 12:30 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Ясно, сделал через varchar(36), смотрю, как сделать в бинарном виде Код: plsql 1. 2. 3. 4.
Но Маня выдает: Function or expression '`UUID_TO_BIN`()' cannot be used in the DEFAULT clause of `binary_uuid` 1. почему в первом поле прошло, а во втором нет? Так сработало: Код: plsql 1. 2. 3. 4.
2. как все-таки сделать такую таблицу t1 с функциями в дефолтах? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 16:18 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Ролг Хупин, MariaDB какой версии? Не слишком старая? MySQL, начиная с версии 8.0.13, такое точно умеет. См. https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 21:53 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
miksoftРолг Хупин, MariaDB какой версии? Не слишком старая? MySQL, начиная с версии 8.0.13, такое точно умеет. См. https://dev.mysql.com/doc/refman/8.0/en/data-type-defaults.html не, самая свежая, select @@version 10.4.8-MariaDB ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 09:15 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Ролг ХупинВ постресе он есть, но что использовать и как в MariaDB для переноса таких таблиц? В постгрессе он, конечно, есть. Но что он представляет из себя внутренне - документация не говорит. Внешне же он, как обычно, отображается как 36-символьная строка. При переносе данных в MySQL/MariaDB подходящим типом для UUID является строковый тип соотв. размера - BINARY(36) или CHAR(36). Поскольку длина фиксирована - VARCHAR/VARBINARY не имеет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 09:30 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
AkinaРолг ХупинВ постресе он есть, но что использовать и как в MariaDB для переноса таких таблиц? В постгрессе он, конечно, есть. Но что он представляет из себя внутренне 16 байт ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 10:03 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Ролг ХупинUUID_TO_BIN()а что-то я вообще не вижу такой функции в доке по MariaDB. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 10:14 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Melkij , я не совсем об этом. Я о том, как интерпретируется в процессе обработки. Снаружи строка, в памяти и на диске бинар, а в серединке? Например, при сравнении что сравнивается - бинарное представление, строковое, или бинарное как строковое с бинарным collation? Когда выполняется преобразование? Хотя, наверное, это не так важно из-за строгой типизации... Впрочем, знание того, что каждый раз UUID гоняется из бинара в строку и обратно на пути между клиентом и диском, тоже небесполезно. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 10:16 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
miksoft https://mariadb.com/kb/en/library/function-differences-between-mariadb-104-and-mysql-80/ Возможно, я перетопил, хорошо, сделал так Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 10:32 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Свои функции тоже нельзя. https://mariadb.com/kb/en/library/create-table/#default-column-option The DEFAULT clause cannot contain any stored functions or subqueries Можно попробовать как-то так: UNHEX(REPLACE(UUID(),'-','')) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 10:46 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Akina Melkij , я не совсем об этом. Я о том, как интерпретируется в процессе обработки. Снаружи строка, в памяти и на диске бинар, а в серединке? Например, при сравнении что сравнивается - бинарное представление, строковое, или бинарное как строковое с бинарным collation? Когда выполняется преобразование? оффтоп, конечно.... Сравниваются бинарники за один вызов memcmp . Преобразование на входе выполняется когда разбор запроса определяет, что этот литерал в запросе должен быть обработан как тип uuid. И на выходе готовых таплов в текстовом представлении протокола. Или вовсе никакого преобразования не выполняется для бинарной передачи, см. uuid_recv/uuid_send чуть выше в uuid.c ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 11:10 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
miksoftСвои функции тоже нельзя. https://mariadb.com/kb/en/library/create-table/#default-column-option The DEFAULT clause cannot contain any stored functions or subqueries Можно попробовать как-то так: UNHEX(REPLACE(UUID(),'-','')) То, что свои нельзя - это, конечно, хреновато.... Но, вот они пишут: https://mariadb.com/kb/en/library/create-table/ авторDEFAULT Column Option MariaDB starting with 10.2.1 The DEFAULT clause was enhanced in MariaDB 10.2.1. Some enhancements include BLOB and TEXT columns now support DEFAULT. The DEFAULT clause can now be used with an expression or function. Т.е. надо понимать, " expression or function" - не юзерская функция, а только их встроенная? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 11:20 |
|
MariaDB: Как использовать UUID?
|
|||
---|---|---|---|
#18+
Ролг ХупинТ.е. надо понимать, " expression or function" - не юзерская функция, а только их встроенная?да, именно так. Как я понимаю, это сделано чтобы значение было детерменистичным от времени. Свою-то функцию вы можете и удалить, и поменять. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 11:33 |
|
|
start [/forum/topic.php?fid=47&msg=39875909&tid=1828910]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
67ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
others: | 314ms |
total: | 467ms |
0 / 0 |