"العمود غير موجود" لـ Postgresql: مشكلة في حالة حالة حالة
صداع postgresql الشائع هو خطأ "العمود غير موجود" ، حتى عندما يتم تعريف العمود بوضوح. هذا غالبا ما ينبع من قضايا الحسمة. النظر في هذا المثال:
SELECT Continent
FROM network.countries
WHERE Continent IS NOT NULL
AND Continent ''
LIMIT 5
قد يعود هذا الاستعلام الصحيح على ما يبدو:
ERROR: column "continent" does not exist
Hint: Perhaps you meant to reference the column "countries.Continent".
Position: 8
الحل: عمود دقيق تسميات مع علامات اقتباس مزدوجة
الإصلاح بسيط: أرفق اسم العمود في اقتباسات مزدوجة:
SELECT "Continent"
FROM network.countries
WHERE "Continent" IS NOT NULL
AND "Continent" ''
LIMIT 5
عن طريق quoting مزدوجة "Continent"
، يمكنك أن تخبر بوضوح postgresql بمعالجة الاسم كسلسلة حرفية حساسة للحالة ، وتمنع تفسيرات سوء التفسير.
لماذا المهمة المزدوجة
postgresql عادة ما يتولى أسماء الأعمدة بطريقة غير حساسة للحالة. ومع ذلك ، غالبًا ما يتم تحويل أسماء الأعمدة غير المخصصة إلى أحرف صغيرة داخليًا. إذا كان اسم العمود الخاص بك يحتوي على علبة مختلطة (مثل "Continent") ، وأشار إليها بدون عروض أسعار ، فقد تبحث PostgreSQL عن عمود "Continent" ، مما يؤدي إلى الخطأ. عروض الأسعار المزدوجة تضمن تطابقًا دقيقًا ، وحل الغموض.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3