MySQL случайным образом вставляет строку как десятичное значение в столбец VarcharMySql

Форум по Mysql
Ответить
Anonymous
 MySQL случайным образом вставляет строку как десятичное значение в столбец Varchar

Сообщение Anonymous »

Мы столкнулись с довольно странным поведением, которое очень трудно воспроизвести. При введении конкретных строк , которые напоминают научную нотацию в столбце Varchar, он будет вставлен как 65 из 9, что указывает на переполнение, что означает, что наша строка случайным образом вставляется как десятичный большой. Другая странная часть этого заключается в том, что даже с той же строкой поведение изменяется. Большую часть времени он будет вставлен должным образом, но в некоторых случаях та же самая строка будет вставлена ​​как 99999999999999999999999999999999999999999999999999999999999999999999999999999 . > < Br />

Код: Выделить всё

4840e430eac9f22a5e8609a1c95faaeb8c921f66e24e55cf839a00eb35790c00< /code>

2e540795-afe5-4644-a3d0-2aaae007c76e

Таблица Создание кода:

Код: Выделить всё

 CREATE TABLE `table1` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`UUID` CHAR(36) NOT NULL COLLATE 'utf8mb4_unicode_ci',
`irrelevantColumn` VARCHAR(255) NOT NULL COLLATE 'utf8mb4_unicode_ci',
`columnName` VARCHAR(510) NOT NULL COLLATE 'utf8mb4_unicode_ci',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE INDEX `UUID_irrelevantColumn_UNIQUE` (`UUID`, `irrelevantColumn`) USING BTREE,
INDEX `table1_uuid_index` (`UUID`) USING BTREE,
INDEX `table1_attributename_index` (`attributeName`) USING BTREE,
CONSTRAINT `table1_uuid_foreign` FOREIGN KEY (`UUID`) REFERENCES `table2` (`uuid`) ON UPDATE CASCADE ON DELETE CASCADE
)
COLLATE='utf8mb4_unicode_ci'
ENGINE=InnoDB
AUTO_INCREMENT=123456
;
мы определили проблему sight быть на стороне MySQL, а не Laravel или ProxySQL, так как запрос, отправленный MySQL Журналы запросов, произведенные Laravel и ProxySQL). Ниже приведен пример запроса, взятого непосредственно из указанного журнала.

Код: Выделить всё

insert into `table1` (`irrelevantColumn`, `columnName`, `UUID`)
values (
'someString',
'4840e430eac9f22a5e8609a1c95faaeb8c921f66e24e55cf839a00eb35790c00',
'2e540795-afe5-4644-a3d0-2aaae007c76e'
)
< /code>
Мы хотели бы определить, что вызывает это поведение и как его можно предотвратить. < /p>
Используется стек: < /p>
< ul>
 Laravel 11 + octan Версия: 8.0.35, используемый двигатель IS INNODB < /li>
< /ul>
Laravel начинает сеанс со следующими параметрами

SET NAMES 'utf8mb4' COLLATE 'utf8mb4_unicode_ci', time_zone='+00:00', SESSION sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'



Подробнее здесь: https://stackoverflow.com/questions/794 ... har-column
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «MySql»