ทำไมฉันต้องส่ง NULL ไปเป็นประเภทคอลัมน์
ฉันมีผู้ช่วยที่กำลังสร้างรหัสเพื่อทำการอัปเดตจำนวนมากสำหรับฉันและสร้าง SQL ที่มีลักษณะดังนี้: (ทั้งประเภทที่ใช้งานอยู่และเขตข้อมูลหลักเป็นประเภทboolean) UPDATE fields as t set "active" = new_values."active","core" = new_values."core" FROM (values (true,NULL,3419), (false,NULL,3420) ) as new_values("active","core","id") WHERE new_values.id = t.id; อย่างไรก็ตามมันล้มเหลวด้วย: ERROR: column "core" is of type boolean but expression is of type text ฉันสามารถทำให้มันทำงานได้โดยเพิ่ม::booleanโมฆะ แต่มันดูแปลกทำไม NULL ถึงถูกพิจารณาว่าเป็นประเภทTEXTใด นอกจากนี้ยังเป็นการยากที่จะร่ายเพราะมันต้องการการทำใหม่ของโค้ดเพื่อให้รู้ว่าควรใช้ NULL แบบใด (รายการของคอลัมน์และค่าปัจจุบันถูกสร้างอัตโนมัติจากอาร์เรย์ของวัตถุ JSON แบบง่าย ๆ …