创建一个函数以从PostgreSQL中的另一个表插入一个表

舍夫利亚斯科维奇

我创建了一些类型,然后创建了具有这些类型的表:

Create Type Data_typ AS (
... );

Create Type Communication_typ As (
...;

Create Type CreditCard_typ As (
...);

Create Type Name_typ As (
...);

Create Type Personal_typ As (
...);

Create Type Address_typ As (
...);

Create Type Customers_typ As (
CustomerID integer,
Data Data_typ,
Communication Communication_typ,
CreditCard CreditCard_typ,
Name Name_typ,
Personal Personal_typ,
Address Address_typ);

Create Table Customers_1 of Customers_typ(
primary key (CustomerID));

另外,我还有另一个表,名为表,customers其中包含一些数据。我想要做的是创建一个函数,将所有元素从客户复制到客户_1。的列customers与customers_1相同,但是在customers_1上,我创建了包含某些列的类型。

(“客户”有20列,我将其分为“客户_1”上的6种类型)。

这是我的功能:

Create OR REPLACE Function CopyCustomers() RETURNS VOID AS
$$
Begin 
    Insert Into Customers_1(
    Select
    NEW Data_typ (username, password),
    new communication_typ(email,phone),
    new creditCard_typ(creditcardtyp,creditcard,creditcardexpiration),
    new name_typ(firstname,lastname),
    new personal(age,income,gender),
    new address(address1,address2,coty,state,zip)
    From Customers);

End;
$$  LANGUAGE plpgsql;

我不确定是否new正确。我得到的错误是

ERROR:  syntax error at or near "("
LINE 7:  NEW Data_typ (username, password),
                      ^
********** Error **********

ERROR: syntax error at or near "("
SQL state: 42601
Character: 119

更新-我尝试使用ROW语法:

Create OR REPLACE Function CopyCustomers() RETURNS VOID AS
$$
Begin 
    Insert Into Customers_1
    Select
    ROW(username, password),
    ROW(email,phone),
    ROW(creditcardtyp,creditcard,creditcardexpiration),
    ROW(firstname,lastname),
    ROW(age,income,gender),
    ROW(address1,address2,coty,state,zip)
    From Customers;

End;
$$  LANGUAGE plpgsql;

我执行函数,然后收到错误消息:

ERROR:  cannot cast type record to data_typ
LINE 4:  ROW(username, "Password"),
         ^
QUERY:  Insert Into Customers_1
    Select
    CustomerID,
    ROW(username, password),
    ROW(email,phone),
    ROW(creditcardcype,creditcard,creditcardexpiration),
    ROW(firstname,lastname),
    ROW(age,income,gender),
    ROW(address1,address2,city,state,zip)
    From CustomerS
CONTEXT:  PL/pgSQL function copycustomers() line 3 at SQL statement
********** Error **********

ERROR: cannot cast type record to data_typ
SQL state: 42846
Context: PL/pgSQL function copycustomers() line 3 at SQL statement
克雷格·林格

几个问题。

Insert Into Customers_1(
Select

您不需要那里的父母,这只是

INSERT INTO customers_1 SELECT ....

至于:

NEW Data_typ (username, password),

您是否只是尝试创建一个Data_typ,在其中创建Data_typ一个复合类型CREATE TYPE Data_typ AS (...)

如果是这样,您要:

ROW(username, password)::xy

例如,给出CREATE TYPE xy AS (x integer, y integer);

regress=> SELECT new xy(1,2);
ERROR:  syntax error at or near "("
LINE 1: SELECT new xy(1,2);
                     ^
regress=> SELECT xy(1,2);
ERROR:  function xy(integer, integer) does not exist
LINE 1: SELECT xy(1,2);
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
regress=> SELECT ROW(1,2)::xy;
  row  
-------
 (1,2)
(1 row)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

插入一个表会自动先插入另一个表(PostgreSQL)

来自分类Dev

在另一个函数中创建一个函数以更改状态

来自分类Dev

使用函数从另一个表创建一个连接表

来自分类Dev

PostgreSQL从另一个表中更新了一个表

来自分类Dev

如何使一个表与postgresql中的另一个表共享一个序列?

来自分类Dev

用另一个表中的信息创建一个表

来自分类Dev

如何使用 JavaScript 在另一个表中创建一个表?

来自分类Dev

如何自动从另一个工作表中多次插入一个值?

来自分类Dev

为 SUM 表创建触发器并插入到另一个表中

来自分类Dev

根据当前插入的行在另一个表中创建一行

来自分类Dev

将表值从一个表插入到另一个表

来自分类Dev

创建一个函数以返回表SQL

来自分类Dev

将插入的ID插入另一个表

来自分类Dev

将插入的ID插入另一个表

来自分类Dev

创建记录时,运行一个函数以在另一个模块中创建记录-Odoo 13

来自分类Dev

如何创建一个函数以供稍后在另一个函数中重用

来自分类Dev

如何基于在第一个表中的插入在另一个表中插入行

来自分类Dev

创建一个函数以将值从一个数据框插入另一个数据框

来自分类Dev

如何从PostgreSQL中的另一个表插入值?

来自分类Dev

在PostgreSQL中使用executemany()在另一个表中插入外键

来自分类Dev

MySQL基于选择从一个表插入到另一个表

来自分类Dev

如何将值从另一个表插入一个表

来自分类Dev

插入一个表并使用shellscript更新另一个表

来自分类Dev

使用另一个表的平均值插入一个表

来自分类Dev

将一个表数据插入另一个表

来自分类Dev

从另一个表创建表

来自分类Dev

从2个表中获取数据并插入到另一个表中

来自分类Dev

将两个表中的数据插入到另一个表中

来自分类Dev

使用LINQ在另一个表中创建和插入ID

Related 相关文章

  1. 1

    插入一个表会自动先插入另一个表(PostgreSQL)

  2. 2

    在另一个函数中创建一个函数以更改状态

  3. 3

    使用函数从另一个表创建一个连接表

  4. 4

    PostgreSQL从另一个表中更新了一个表

  5. 5

    如何使一个表与postgresql中的另一个表共享一个序列?

  6. 6

    用另一个表中的信息创建一个表

  7. 7

    如何使用 JavaScript 在另一个表中创建一个表?

  8. 8

    如何自动从另一个工作表中多次插入一个值?

  9. 9

    为 SUM 表创建触发器并插入到另一个表中

  10. 10

    根据当前插入的行在另一个表中创建一行

  11. 11

    将表值从一个表插入到另一个表

  12. 12

    创建一个函数以返回表SQL

  13. 13

    将插入的ID插入另一个表

  14. 14

    将插入的ID插入另一个表

  15. 15

    创建记录时,运行一个函数以在另一个模块中创建记录-Odoo 13

  16. 16

    如何创建一个函数以供稍后在另一个函数中重用

  17. 17

    如何基于在第一个表中的插入在另一个表中插入行

  18. 18

    创建一个函数以将值从一个数据框插入另一个数据框

  19. 19

    如何从PostgreSQL中的另一个表插入值?

  20. 20

    在PostgreSQL中使用executemany()在另一个表中插入外键

  21. 21

    MySQL基于选择从一个表插入到另一个表

  22. 22

    如何将值从另一个表插入一个表

  23. 23

    插入一个表并使用shellscript更新另一个表

  24. 24

    使用另一个表的平均值插入一个表

  25. 25

    将一个表数据插入另一个表

  26. 26

    从另一个表创建表

  27. 27

    从2个表中获取数据并插入到另一个表中

  28. 28

    将两个表中的数据插入到另一个表中

  29. 29

    使用LINQ在另一个表中创建和插入ID

热门标签

归档