Что означает ошибка «Общая длина столбцов в ограничении слишком велика» в Informix?

Я получаю, что общая длина столбцов в ограничении слишком велика. ошибка из следующего

sql] Failed to execute:   CREATE TABLE GTW_WORKFLOW_MON ( WORKFLOW_NAME VARCHAR(255) NOT
NULL, WORKFLOW_LOADED NUMERIC(20) NOT NULL, ACTIVITY_NAME VARCHAR(255) NOT NULL, FLAGS    
INTEGER NOT NULL, MONITOR_NAME VARCHAR(255) NOT NULL, CLASSNAME VARCHAR(255) NOT NULL, S

TR0 VARCHAR(255), STR1 VARCHAR(255), STR2 VARCHAR(255), NUM0 VARCHAR(255), NUM1 
VARCHAR(255), NUM2 VARCHAR(255), DATE0 VARCHAR(255), DATE1 VARCHAR(255), DATE2 
VARCHAR(255), PRIMARY KEY (WORKFLOW_NAME,WORKFLOW_LOADED,ACTIVITY_NAME,MONITOR_NAME) )

  [sql] java.sql.SQLException: Total length of columns in constraint is too long.

Выберите ответ, который помог вам больше всего - помог ли вообще какой-либо из них.

Jonathan Leffler 18.10.2008 09:11
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
1
1 140
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Ограничение вашего первичного ключа составляет 785 байт (255 + 20 + 255 + 255). Если вы увеличите размер страницы базы данных до 4K, это едва ли сработает. Вам также следует пересмотреть, нужно ли вам, чтобы ваши столбцы были такими же широкими, как вы их определяете.

Я нашла дискуссионную группу, где инженер Радика Гадде, описывает, сказала, что максимальный размер индекса связан с размером страницы. Он говорит:

какая ошибка возникает при создании таблиц. Максимальную длину ключа индекса можно рассчитать следующим образом:

[(PAGESIZE -93) / 5] -1

как для 2к это [(2048-93) / 5] -1 = [1955/5] -1 = 391-1 = 390

если РАЗМЕР СТРАНИЦЫ - 4K это [(4096-93) / 5] -1 = 4003 / 5-1 = 800-1 = 799

Nit pick - NUMERIC (20) эквивалентно DECIMAL (20) и занимает (20/2) +1 = 11 байт. Но ваш основной ответ правильный.

Jonathan Leffler 09.10.2008 22:29

Выше ответ полный. Но подумал о добавлении полезных ссылок на случай, если кто-то снова столкнется с этой проблемой. Размер страницы в Informix зависит от операционной системы. По моему недавнему опыту, я обнаружил, что это 4K на Win 2008, OSX - Lion и 2K на SUSE EL4. Вы можете узнать размер страницы, используя 'onstat -D'.

Я написал http://sumedha.blogspot.com/2013/03/how-to-increase-informix-page-size.html с таким опытом. Следующая ссылка на документацию от IBM также очень полезна.

http://publib.boulder.ibm.com/infocenter/idshelp/v115/index.jsp?topic=%2Fcom.ibm.admin.doc%2Fids_admin_0564.htm

Ссылка на решение приветствуется, но убедитесь, что ваш ответ полезен и без нее: добавить контекст вокруг ссылки, чтобы ваши коллеги-пользователи имели некоторое представление о том, что это такое и почему оно есть, а затем процитируйте наиболее релевантную часть страницы, на которую вы ссылаетесь. если целевая страница недоступна. Ответы, которые представляют собой не более чем ссылку, могут быть удалены.

kayess 13.07.2018 12:14

Другие вопросы по теме