Задать вопрос
Rett-oo
@Rett-oo

Как убрать ограничения чтения названия столбца в PostgreSQL?

При попытке создать таблицу со следующими столбцами('Доступно_на_складе_СЦ_ТОЛЬЯТТИ_МАГИСТРАЛЬНАЯ__шт', 'Доступно_на_складе_СЦ_ТОЛЬЯТТИ_МАГИСТРАЛЬНАЯ_Возвраты__шт') выходит ошибка:

psycopg2.errors.DuplicateColumn: ОШИБКА:  столбец "Доступно_на_складе_СЦ_ТОЛЬЯТТИ_МАГ" указан неоднократно


Почему PostgreSQL не читает строку с названием столбца полностью? Есть ли способ явно указать сколько символов необходимо сопоставить? Поскольку "Доступно_на_складе" необходимый элемент вариант убрать его не подходит

def create_table(self, name: str, pkey, id=False):
        
        col_info = self.concatenate_string()
        with self.connection.cursor() as cursor:
            cursor.execute(
                f"""CREATE TABLE IF NOT EXISTS {name} (
                    {"id serial, " if id==True else ""}
                    {str(" ".join(col_info))[:-1]}
                    );"""
  • Вопрос задан
  • 329 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
https://www.postgresql.org/docs/7.0/syntax525.htm
The system uses no more than NAMEDATALEN-1 characters of a name; longer names can be written in queries, but they will be truncated. By default, NAMEDATALEN is 32 so the maximum name length is 31 (but at the time the system is built, NAMEDATALEN can be changed in src/include/postgres_ext.h).


Только компилять свою версию постгре с увеличенной константой NAMEDATALEN.
Ну или исправить кхм, странную архитектуру твоей программы, которой нужны длинные рускоязычные имена столбцов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
SpectrumData Екатеринбург
от 150 000 до 250 000 ₽
AST Москва
До 350 000 ₽
Wanted. Москва
До 250 000 ₽
14 янв. 2025, в 00:52
100 руб./за проект
14 янв. 2025, в 00:45
7000 руб./за проект
14 янв. 2025, в 00:39
30000 руб./за проект