Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка при изменении таблицы / 11 сообщений из 11, страница 1 из 1
03.04.2020, 13:52
    #39943498
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Привет.

Не пойму, что за ошибка. Есть таблица, надо её изменить - добавить новую колонку. Выполняю:

alter table leasing_clients ADD COLUMN `about_us` VARCHAR(50);

в ответ получаю такую ошибку

ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

Не пойму смысл предупреждения, если у меня варчар всего 50 символов... Должно же нормально сработать.

Помогите плиз. Спасибо.
...
Рейтинг: 0 / 0
03.04.2020, 14:01
    #39943501
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Покажи исходный DDL таблицы.
...
Рейтинг: 0 / 0
03.04.2020, 14:12
    #39943506
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Akina,

Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
CREATE TABLE `leasing_clients` (
	`id_md5` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
	`date` DATETIME NOT NULL,
	`client_id` INT(10) UNSIGNED NOT NULL,
	`lastname` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
	`firstname` VARCHAR(50) NOT NULL COLLATE 'utf8_general_ci',
	`middlename` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`phone` VARCHAR(15) NOT NULL COLLATE 'utf8_general_ci',
	`other_phones` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`email` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`passport_number` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`passport_whom` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`passport_when` DATE NULL DEFAULT NULL,
	`passport_code` VARCHAR(10) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`address` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`comments` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`date_of_birth` DATE NULL DEFAULT NULL,
	`place_of_birth` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`citizenship` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`snils` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`inn` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`driver_license` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`marital_status` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`amount_of_children` SMALLINT(5) UNSIGNED NULL DEFAULT NULL,
	`next_of_kin` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`work_details` VARCHAR(5000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`socials` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`other_loans` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`first_contact_analysis` VARCHAR(2500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`photos` VARCHAR(2500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`images` VARCHAR(5000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`education_type` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`education_name` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`deleted` TINYINT(1) NULL DEFAULT '0',
	`requested_car` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`what_period` INT(10) UNSIGNED NULL DEFAULT NULL,
	`initial_fee` INT(10) UNSIGNED NULL DEFAULT NULL,
	`fee_source` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`inter_passport_serial` VARCHAR(20) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`inter_passport_time` DATE NULL DEFAULT NULL,
	`languages` VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`other_incomes` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`property` TEXT(65535) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	PRIMARY KEY (`client_id`) USING BTREE,
	UNIQUE INDEX `name_phone` (`lastname`, `phone`) USING BTREE,
	UNIQUE INDEX `id_md5` (`id_md5`) USING BTREE,
	UNIQUE INDEX `client_id` (`client_id`) USING BTREE,
	UNIQUE INDEX `passport` (`passport_number`) USING BTREE
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB
;




Код: 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.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
+------------------------+----------------------+------+-----+---------+-------+
| Field                  | Type                 | Null | Key | Default | Extra |
+------------------------+----------------------+------+-----+---------+-------+
| id_md5                 | varchar(50)          | NO   | UNI | NULL    |       |
| date                   | datetime             | NO   |     | NULL    |       |
| client_id              | int(10) unsigned     | NO   | PRI | NULL    |       |
| lastname               | varchar(50)          | NO   | MUL | NULL    |       |
| firstname              | varchar(50)          | NO   |     | NULL    |       |
| middlename             | varchar(50)          | YES  |     | NULL    |       |
| phone                  | varchar(15)          | NO   |     | NULL    |       |
| other_phones           | varchar(100)         | YES  |     | NULL    |       |
| email                  | varchar(50)          | YES  |     | NULL    |       |
| passport_number        | varchar(50)          | YES  | UNI | NULL    |       |
| passport_whom          | varchar(100)         | YES  |     | NULL    |       |
| passport_when          | date                 | YES  |     | NULL    |       |
| passport_code          | varchar(10)          | YES  |     | NULL    |       |
| address                | varchar(100)         | YES  |     | NULL    |       |
| comments               | varchar(1000)        | YES  |     | NULL    |       |
| date_of_birth          | date                 | YES  |     | NULL    |       |
| place_of_birth         | varchar(100)         | YES  |     | NULL    |       |
| citizenship            | varchar(50)          | YES  |     | NULL    |       |
| snils                  | varchar(20)          | YES  |     | NULL    |       |
| inn                    | varchar(50)          | YES  |     | NULL    |       |
| driver_license         | varchar(50)          | YES  |     | NULL    |       |
| marital_status         | varchar(20)          | YES  |     | NULL    |       |
| amount_of_children     | smallint(5) unsigned | YES  |     | NULL    |       |
| next_of_kin            | varchar(1000)        | YES  |     | NULL    |       |
| work_details           | varchar(5000)        | YES  |     | NULL    |       |
| socials                | varchar(1000)        | YES  |     | NULL    |       |
| other_loans            | varchar(1000)        | YES  |     | NULL    |       |
| first_contact_analysis | varchar(2500)        | YES  |     | NULL    |       |
| photos                 | varchar(2500)        | YES  |     | NULL    |       |
| images                 | varchar(5000)        | YES  |     | NULL    |       |
| education_type         | varchar(50)          | YES  |     | NULL    |       |
| education_name         | varchar(500)         | YES  |     | NULL    |       |
| deleted                | tinyint(1)           | YES  |     | 0       |       |
| requested_car          | varchar(100)         | YES  |     | NULL    |       |
| what_period            | int(10) unsigned     | YES  |     | NULL    |       |
| initial_fee            | int(10) unsigned     | YES  |     | NULL    |       |
| fee_source             | varchar(100)         | YES  |     | NULL    |       |
| inter_passport_serial  | varchar(20)          | YES  |     | NULL    |       |
| inter_passport_time    | date                 | YES  |     | NULL    |       |
| languages              | varchar(100)         | YES  |     | NULL    |       |
| other_incomes          | varchar(1000)        | YES  |     | NULL    |       |
| property               | text                 | YES  |     | NULL    |       |
+------------------------+----------------------+------+-----+---------+-------+


...
Рейтинг: 0 / 0
03.04.2020, 15:31
    #39943535
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Итого суммарно варчаров на 21785 символов, что при utf8_general_ci будет 65535 байт. И что, у тебя реально вызывает удивление, что ещё 50 символов в оставшиеся ноль байтов не лезут?
...
Рейтинг: 0 / 0
03.04.2020, 15:52
    #39943544
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Akina,

Спасибо больше, если честно, я не знал, что суммарно варчары считаются. В доках что-то нигде такое не попадалось.
...
Рейтинг: 0 / 0
03.04.2020, 16:14
    #39943556
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
ADMINCHIKKK
ERROR 1118 (42000): Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535.

Не field, не column. А именно row.
...
Рейтинг: 0 / 0
03.04.2020, 16:39
    #39943570
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
ADMINCHIKKK,

Таблицу, по-хорошему, надо бы нормализовать. Заодно и записи покороче станут.
...
Рейтинг: 0 / 0
03.04.2020, 16:40
    #39943571
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
ну да, уже записи подкорачиваю. а как ещё нормализовать?
...
Рейтинг: 0 / 0
03.04.2020, 16:50
    #39943577
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
ADMINCHIKKK
ну да, уже записи подкорачиваю.
Зачем?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
CREATE TABLE `leasing_clients` (
...
	`comments` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
...
	`next_of_kin` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`work_details` VARCHAR(5000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`socials` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`other_loans` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`first_contact_analysis` VARCHAR(2500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`photos` VARCHAR(2500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
	`images` VARCHAR(5000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
...
	`education_name` VARCHAR(500) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
...
	`other_incomes` VARCHAR(1000) NULL DEFAULT NULL COLLATE 'utf8_general_ci',
...


Весьма достойные кандидаты на тип TEXT. И можно ничего не укорачивать.
...
Рейтинг: 0 / 0
03.04.2020, 16:53
    #39943578
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
ADMINCHIKKK
а как ещё нормализовать?
Вариантов много, например, ДУЛ (документ удостоверяющий личность) вынести в отдельную таблицу, они историчен. Всякие СНИЛС-ы, ИНН-ы, брачный статус, водителские права - аналогично.
Телефоны, прочие контакты, фотографии (их может быть произвольное количество), гражданство (оно из справочника), языки (тоже справочник).
...
Рейтинг: 0 / 0
03.04.2020, 20:24
    #39943681
ADMINCHIKKK
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при изменении таблицы
Спасибо вам!

Хорошие идеи! Буду менять...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка при изменении таблицы / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]