Sequelize Postgres函数给出错误'列不存在'

时间:2017-01-09 12:05:50

标签: sequelize.js stored-functions

我已经为表 MyTable 创建了一个pg函数(存储过程)。

当我创建一个续集查询MyTable.findAll(query)时,表有一个别名但表的属性(列)没有,所以生成的查询是:

     ;-- section_end..rela.dyn:
            ;-- section..text:
            ;-- test:
/ (fcn) entry0 20
|   entry0 ();
|           0x00000268      b001           mov al, 1                   ; [6] va=0x00000268 pa=0x00000268 sz=25 vsz=25 rwx=--r-x .text
|           0x0000026a      40b701         mov dil, 1
|           0x0000026d      48be7c020000.  movabs rsi, 0x27c           ; "hello"  ; RELOC 64 
|           0x00000277      b207           mov dl, 7
|           0x00000279      0f05           syscall
\           0x0000027b      c3             ret
            ; DATA XREF from 0x0000026d (entry0)
            0x0000027c      68656c6c6f     push 0x6f6c6c65
            ;-- section_end..text:
            0x00000281      0000           add byte [rax], al
            0x00000283      0000           add byte [rax], al
            0x00000285      0000           add byte [rax], al
            ;-- section..eh_frame:
            ;-- section_end..eh_frame:
            ;-- section_end.LOAD0:
            0x00000287  ~   0000           add byte [rax], al
            0x00000289      0000           add byte [rax], al
            0x0000028b      0000           add byte [rax], al
            0x0000028d      0000           add byte [rax], al
            0x0000028f      0000           add byte [rax], al
            0x00000291      0000           add byte [rax], al
            ............ and so on, wasting lots of kilobytes......

导致错误

SELECT ...,....,...., "myStoredProcedure" .... FROM "MyTable" as "MyTable" ;

当我使用另一个表加入 MyTable 并选择该字段时,生成的查询将变为:

SequelizeDatabaseError: column "myStoredProcedure" does not exist

完美无缺。如何强制别名在我选择的列上使用,因此当我不联合表时,我可以像常规列一样选择存储过程

1 个答案:

答案 0 :(得分:0)

好的,我通过创建一个假模型和一个名为Fakes的空表来解决它。然后我包括Fake关联(这是一个空表,列作为我有函数的所有表的外键,id不与其他表连接)。这样,“MyTable”的别名将添加到所有列,并且函数可以正常工作。