Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

PostgreSQL:một mẫu gán biến hợp lệ?

Không có biến nào trong Postgres SQL (bạn chỉ có thể sử dụng các biến trong ngôn ngữ thủ tục).

Sử dụng RETURNING trong WITH truy vấn:

WITH insert_cat AS (
    INSERT INTO main_categorie (description)
    VALUES ('Verbe normal')
    RETURNING id
),
insert_mot AS (
    INSERT INTO main_mot (txt,im,date_c,date_v_d,date_l)
    VALUES ('je m''abaisse',1,NOW(),NOW(),NOW())
    RETURNING id
)
INSERT INTO main_motcategorie (mot_id,categorie_id) 
SELECT m.id, c.id
FROM insert_mot m, insert_cat c;

Thay vào đó, bạn có thể sử dụng các thông số cấu hình tùy chỉnh theo cách được mô tả trong bài đăng này .

Tạo hai chức năng:

create or replace function set_var (name text, value text)
returns void language plpgsql as $$
begin
    execute format('set mysql.%s to %s', name, value);
end $$;

create or replace function get_var (name text)
returns text language plpgsql as $$
declare
    rslt text;
begin
    execute format('select current_setting(''mysql.%s'')', name) into rslt;
    return rslt;
end $$;

Với các hàm, bạn có thể mô phỏng các biến, như trong ví dụ:

INSERT INTO main_categorie (description)
VALUES ('Verbe normal');

SELECT set_var('PRONOMINAL', (SELECT currval('main_categorie_id_seq')::text));

INSERT INTO main_mot (txt,im,date_c,date_v_d,date_l)
VALUES ('je m''abaisse',1,NOW(),NOW(),NOW());

SELECT set_var('verbe_149', (SELECT currval('main_mot_id_seq')::text));

INSERT INTO main_motcategorie (mot_id,categorie_id) 
SELECT get_var('verbe_149')::int, get_var('PRONOMINAL')::int;

Đây chắc chắn không phải là một ví dụ về mã tốt.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách hiển thị giá trị Min và Max trên bảng tổng hợp động

  2. MYSQL tìm hai trường văn bản khác nhau như thế nào?

  3. Làm thế nào để chèn dữ liệu vào MySQL có khóa chính tăng tự động?

  4. Không thể sử dụng mysql_real_escape_string

  5. Nội dung tham gia lồng nhau bên trong câu lệnh cập nhật SQL