powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Ошибка при изменении таблицы
11 сообщений из 11, страница 1 из 1
Ошибка при изменении таблицы
    #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
Ошибка при изменении таблицы
    #39943501
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи исходный DDL таблицы.
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #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
Ошибка при изменении таблицы
    #39943535
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого суммарно варчаров на 21785 символов, что при utf8_general_ci будет 65535 байт. И что, у тебя реально вызывает удивление, что ещё 50 символов в оставшиеся ноль байтов не лезут?
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #39943544
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Спасибо больше, если честно, я не знал, что суммарно варчары считаются. В доках что-то нигде такое не попадалось.
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #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
Ошибка при изменении таблицы
    #39943570
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADMINCHIKKK,

Таблицу, по-хорошему, надо бы нормализовать. Заодно и записи покороче станут.
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #39943571
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну да, уже записи подкорачиваю. а как ещё нормализовать?
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #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
Ошибка при изменении таблицы
    #39943578
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ADMINCHIKKK
а как ещё нормализовать?
Вариантов много, например, ДУЛ (документ удостоверяющий личность) вынести в отдельную таблицу, они историчен. Всякие СНИЛС-ы, ИНН-ы, брачный статус, водителские права - аналогично.
Телефоны, прочие контакты, фотографии (их может быть произвольное количество), гражданство (оно из справочника), языки (тоже справочник).
...
Рейтинг: 0 / 0
Ошибка при изменении таблицы
    #39943681
ADMINCHIKKK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо вам!

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


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