أسماء أعمدة SQL هي نفسها أسماء أنواع البيانات - مما يسبب أخطاء

StackOverflow https://stackoverflow.com//questions/20012586

سؤال

أنا جديد جدًا على SQL وأواجه مشكلات في إنشاء بنية الجدول.

أريد إنشاء جدول بأربعة أعمدة - id,text,date و replace.المشكلة هي أن هذا يعطيني خطأ في MySQL، على ما أعتقد بسبب الكلمات TEXT و DATE هي أيضًا أسماء لأنواع البيانات و REPLACE هو مصطلح آخر يستخدم في SQL لذا فإن MySQL تشعر بالارتباك بشأن أسماء الأعمدة الخاصة بي أو لا تدرك أن الأسماء التي قدمتها هي أسماء فعلية.هل هناك أي طريقة يمكنني من خلالها التغلب على هذه المشكلة للحصول على أسماء الأعمدة التي أريدها، دون الحاجة إلى استدعاء الأعمدة بشيء آخر ثم تغييرها يدويًا مرة أخرى بمجرد إنشائها؟

ها هي SQL الخاصة بي:

CREATE TABLE message (
    id INT UNIQUE AUTO_INCREMENT NOT NULL,
    text TEXT,
    date INT,
    replace INT DEFAULT 0
);

والخطأ الذي أحصل عليه:

#1064 - لديك خطأ في بناء جملة SQL الخاص بك؛تحقق من الدليل الذي يتوافق مع إصدار خادم MySQL الخاص بك لمعرفة الصيغة الصحيحة لاستخدامها بالقرب من 'replace INT DEFAULT 0 )' في السطر 5

CREATE TABLE message(
    id INT UNIQUE AUTO_INCREMENT NOT NULL ,
    TEXT TEXT,
    DATE INT,
    REPLACE INT DEFAULT 0
);
هل كانت مفيدة؟

المحلول

القاعدة العامة هي عدم استخدام هذه الكلمات الرئيسية، بل ابتكر شيئًا مختلفًا عن "النص" لاسم الحقل الخاص بك.إذا كان يجب عليك استخدام ` (علامة اختيار خلفية) حول اسم العمود لإخبار SQL بأنه اسم عمود وليس ما تعنيه الكلمة الأساسية.أوصي بعدم استدعاء أعمدتك "من" و"تحديد" و"أين" أيضًا؛)

نصائح أخرى

CREATE TABLE message (
    `id` INT UNIQUE AUTO_INCREMENT NOT NULL,
    `text` TEXT,
    `date` INT,
    `replace` INT DEFAULT 0
);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top