2016-11-02 3 views
1

Я хочу создать таблицу random_record, которая занимает те же столбцы, что и другая таблица simulated_records; один из столбцов - grade. Но я получаю эту ошибку:pl/pgsql - Как создать таблицу из другой таблицы

ERROR: "random_record.grade" is not a known variable
LINE 45: random_record.grade = c_grade;
^

********** Error **********

ERROR: "random_record.grade" is not a known variable
SQL state: 42601
Character: 1635

FOR i IN 1..6 LOOP 

    CREATE TABLE random_record AS 
    SELECT .... 

    IF random_record.grade = '-' THEN 

    ..... 

    END IF; 


.... 

END LOOP; 

Я не уверен, если я правильно создать таблицу.

+0

ссылка эта ссылка: https://www.postgresql.org/docs/9.2/static/sql-createtableas.html – Laxmi

+0

Я думаю, что вы хотите 'CASE ... WHEN' как часть' CREATE TABLE AS. .. SELECT ... ' –

+0

@CraigRinger Спасибо, это помогло мне разобраться. –

ответ

1
  • вы создали таблицу хорошо, но таблица не является переменной, так что линия

    IF random_record.grade = '-' THEN 
    

    не имеет никакого смысла. Трудно определить, чего вы хотите, потому что использование таблицы в этом контексте не имеет значения.

  • создание в таблице в цикле имеет другую проблему - заявление CREATE TABLE будет работать только в первом цикле цикла. Второй цикл должен завершиться неудачей, поскольку таблица уже существует.

Это тяжелая помощь, потому что этот код грязный - он смешивает переменные, таблицы вместе, и это невозможно. Каждый объект имеет собственное измерение, собственные методы доступа, и эти механизмы различны.

 Смежные вопросы

  • Нет связанных вопросов^_^