PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

psycopg2 मैपिंग पायथन:पोस्टग्रेज के लिए डिक्ट्स की सूची:INSERT कथन के लिए समग्र प्रकार की सरणी

अपने प्रयासों को थोड़ा-सा बढ़ा देना, कैसा रहेगा:

quote_1 = ("monkeys rock", "False")
quote_2 = ("donkeys rock",  "True")
q_list = [ quote_1, quote_2]
print cur.mogrify("insert into posts VALUES(%s,%s::quotes[])", 
                  ("animals are good", q_list))
#
#                 added explicit cast to quotes[]->^^^^^^^^

स्पष्टीकरण :

यदि आप दौड़ते हैं:

insert into posts 
VALUES('animals are good', ARRAY[
    ('monkeys rock', 'false'),
    ('donkeys rock', 'true')
]);

सीधे psql . में आपको मिलेगा:

regress=# insert into posts 
regress-# VALUES('animals are good',ARRAY[
regress-#             ('monkeys rock', 'false'),
regress-#             ('donkeys rock', 'true')
regress-#  ]);
ERROR:  column "q" is of type quotes[] but expression is of type record[]
LINE 1: insert into posts VALUES('animals are good',ARRAY[('monkeys ...
                                                    ^
HINT:  You will need to rewrite or cast the expression.

निश्चित रूप से, पीजी को बता रहा हूं कि आपकी अनाम सरणी प्रकार की है quotes[] चाल करता है:

regress=# insert into posts 
regress-# VALUES('animals are good',ARRAY[
regress-#           ('monkeys rock', 'false'),
regress-#           ('donkeys rock', 'true')
regress-# ]::quotes[]);
INSERT 0 1

regress=# select * from posts;
       body       |                           q                            
------------------+--------------------------------------------------------
 animals are good | {"(\"monkeys rock\",false)","(\"donkeys rock\",true)"}
(1 row)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. चयन पर एक से एक अलग प्रतिबंध

  2. PostgreSQL में utf8 संयोजन स्थापित करें

  3. 1=1 पर शामिल हों (चुनें ...)?

  4. PostgreSQL में सभी उपयोगकर्ताओं के लिए सभी सक्षम भूमिकाओं की गणना कैसे करें?

  5. से चुनें ... - JSON प्रारूप में एक मान के आधार पर