আমার কাছে এমন একটি সহায়ক পেয়েছি যা আমার জন্য বাল্ক আপডেট করার জন্য কিছু কোড উত্পন্ন করে এবং এসকিউএল তৈরি করে যা দেখে মনে হয়:
(সক্রিয় এবং মূল ক্ষেত্র উভয় প্রকারের 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
নালগুলিতে যোগ করে আমি এটি কাজ করতে পারি , তবে এটি কেবল অদ্ভুত বলে মনে হয়, কেন নুলকে ধরণের বিবেচনা করা হয় TEXT
?
এছাড়াও এটি কাস্ট করা কিছুটা জটিল কারণ কোডটি কীভাবে টাইপ করা উচিত তা জানার জন্য কোডটির পুনর্নির্মাণের বেশ খানিকটা প্রয়োজন (কলাম এবং মানগুলির তালিকা বর্তমানে জেএসওন অবজেক্টের একটি সাধারণ অ্যারে থেকে স্বয়ংক্রিয়ভাবে তৈরি করা হচ্ছে) ।
কেন এটি প্রয়োজনীয় এবং এমন কি আরও একটি দুর্দান্ত সমাধান রয়েছে যার জন্য জেনারেটিং কোডের প্রয়োজন হয় না নুলের প্রকারটি জানতে?
যদি এটি প্রাসঙ্গিক হয় তবে আমি এটি করার জন্য নোড.জেএস এর উপর সিক্যুয়ালাইজ ব্যবহার করছি তবে পোস্টগ্রিস কমান্ড লাইন ক্লায়েন্টেও একই ফলাফল পাচ্ছি।
Cannot cast type boolean to bigint in column 1
(প্রথম ক্ষেত্রের বিবৃতিটির মধ্যে :: :: এ ত্রুটি পয়েন্ট)