2016-11-02 19 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只能在循環的第一個循環中使用。第二個循環必須失敗,因爲表已經存在。

這是很難的幫助,因爲這段代碼很混亂 - 它混合了變量,表格在一起,這是不可能的。每個對象都有自己的維度,自己的訪問方法,這些機制是不同的。