【问题标题】:What is wrong with my stored procedure SQL query on PostgreSQL?我在 PostgreSQL 上的存储过程 SQL 查询有什么问题?
【发布时间】:2021-08-29 05:23:04
【问题描述】:
CREATE OR REPLACE FUNCTION AddNewBusinessWithAd(
      business_id IN DECIMAL, accountname IN VARCHAR, business_name IN VARCHAR, primary_contact IN VARCHAR, 
      phone_number IN DECIMAL, business_email IN VARCHAR, business_website IN VARCHAR, 
      ad_id IN DECIMAL, requested_on IN DATE, advertising_type IN VARCHAR, advertising_plan IN TEXT,
      payment_id IN DECIMAL, payment_method IN DECIMAL, billing_address IN VARCHAR)
RETURNS VOID
AS
$proc$
BEGIN
  INSERT INTO Business(business_id, accountname, business_name, primary_contact, phone_number, business_email, business_website)
  VALUES((nextval('business_seq'), accountname, business_name, primary_contact, phone_number, business_email, business_website);
         
  INSERT INTO Advertisement(ad_id, business_id, requested_on, advertising_type, advertising_plan)
  VALUES((nextval('advertisement_seq'), currval('business_seq'), requested_on, advertising_type, advertising_plan);
         
  INSERT INTO Payment(payment_id, ad_id, payment_method, billing_address)
  VALUES((nextval('payment_seq'),currval('advertisement_seq'), payment_method, billing_address);
END;
$proc$ LANGUAGE plpgsql

我多次尝试使用或不使用分号,但仍然显示错误消息。

错误:“INSERT”处或附近的语法错误 第 13 行:插入广告(ad_id、business_id、requested_on... ^ SQL 状态:42601 字数:712

我确定表约束和顺序都是正确的,但就是无法弄清楚这个查询有什么问题。

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    我认为你的括号不匹配:

      INSERT INTO Business(business_id, accountname, business_name, primary_contact, phone_number, business_email, business_website)
          VALUES ((nextval('business_seq'), accountname, business_name, primary_contact, phone_number, business_email, business_website);
    --------------^
    

    VALUES 之后有两个开放括号。

    【讨论】:

      猜你喜欢
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-04
      • 2010-12-23
      • 2010-10-31
      • 1970-01-01
      • 2016-04-23
      相关资源
      最近更新 更多