KR
alive in new life
ERROR: duplicate key violates unique constraint "shortname_un"
moscowout=# UPDATE datatypes SET shortname='name', rus_name='blah-blah', eng_name='Name', description='blah-blah Name' WHERE datatypes_id=datatypes_update(0, 2);
ERROR: duplicate key violates unique constraint "shortname_un"
moscowout=# SELECT * FROM datatypes WHERE shortname='name';
datatypes_id | shortname | description | column_name | rus_name |
datatype_index | eng_name
--------------+-----------+-------------+-------------+----------+--------------
--+----------
(0 rows)
# описание таблицы
CREATE TABLE public.datatypes
(
datatypes_id serial NOT NULL,
shortname varchar(50),
description text,
column_name varchar(15),
rus_name varchar(50),
datatype_index int2 NOT NULL,
eng_name varchar(50),
CONSTRAINT data_types_id_pk PRIMARY KEY (datatypes_id),
CONSTRAINT shortname_un UNIQUE (shortname)
) WITH OIDS;
В фукнции datatypes_update используются только селекты без shortname
Как оказалось ругань на duplicate key violates происходит при любом shortname, которого заведомо нет и не может быть в таблице.
moscowout=# UPDATE datatypes SET shortname='name', rus_name='blah-blah', eng_name='Name', description='blah-blah Name' WHERE datatypes_id=datatypes_update(0, 2);
ERROR: duplicate key violates unique constraint "shortname_un"
moscowout=# SELECT * FROM datatypes WHERE shortname='name';
datatypes_id | shortname | description | column_name | rus_name |
datatype_index | eng_name
--------------+-----------+-------------+-------------+----------+--------------
--+----------
(0 rows)
# описание таблицы
CREATE TABLE public.datatypes
(
datatypes_id serial NOT NULL,
shortname varchar(50),
description text,
column_name varchar(15),
rus_name varchar(50),
datatype_index int2 NOT NULL,
eng_name varchar(50),
CONSTRAINT data_types_id_pk PRIMARY KEY (datatypes_id),
CONSTRAINT shortname_un UNIQUE (shortname)
) WITH OIDS;
В фукнции datatypes_update используются только селекты без shortname
Как оказалось ругань на duplicate key violates происходит при любом shortname, которого заведомо нет и не может быть в таблице.