मेरे पास एक टेबल items (item_id serial, name varchar(10), item_group int)
और एक टेबल है items_ver (id serial, item_id int, name varchar(10), item_group int)
।
अब मैं में एक पंक्ति सम्मिलित करना चाहते हैं items_ver
से items
। क्या ऐसा करने के लिए कोई छोटा एसक्यूएल-सिंटैक्स है?
मैंने कोशिश की है:
INSERT INTO items_ver VALUES (SELECT * FROM items WHERE item_id = 2);
लेकिन मुझे एक सिंटैक्स त्रुटि मिलती है:
ERROR: syntax error at or near "select"
LINE 1: INSERT INTO items_ver VALUES (SELECT * FROM items WHERE item...
मैंने अब कोशिश की:
INSERT INTO items_ver SELECT * FROM items WHERE item_id = 2;
इसने बेहतर काम किया लेकिन मुझे एक त्रुटि मिली:
ERROR: column "item_group" is of type integer but expression is of type
character varying
LINE 1: INSERT INTO items_ver SELECT * FROM items WHERE item_id = 2;
ऐसा इसलिए हो सकता है क्योंकि तालिकाओं में स्तंभों को एक अलग क्रम में परिभाषित किया गया है। क्या स्तंभ आदेश देता है? मुझे उम्मीद है कि PostgreSQL कॉलम नामों से मेल खाता है।