टेबल बनाने और फिर मौजूदा तालिकाओं के विरुद्ध बाधा डालने के लिए तृतीय पक्ष टूल का उपयोग करते समय मुझे यह संदेश कई बार प्राप्त हुआ है। यह या तो दो चीजों में से एक है:
- द
int
स्तंभों के अलग-अलग आकार होते हैं - द
int
कॉलम में अलग-अलग झंडे होते हैं (बिना AUTO_INCREMENT)
एक उदाहरण के रूप में, मैंने एक उपकरण के साथ एक तालिका बनाई जिसने किसी तरह INT(10)
. के रूप में एक कॉलम बनाया अपेक्षित INT(11)
. के बजाय . हालांकि मैंने अभी-अभी INT
. चुना है दोनों को बनाते समय, इसे गड़बड़ कर दिया गया था - कभी पता नहीं क्यों लगाया गया।
लंबी कहानी छोटी, आमतौर पर INT
. को स्पष्ट रूप से बताना सबसे अच्छा है तालिका बनाते समय आकार।
आपके मामले में, निम्नलिखित कार्य करना चाहिए:
create table users (id int(11) not null auto_increment
, username varchar(255) NOT NULL
, password varchar(255) NOT NULL
, active int NOT NULL
, PRIMARY KEY (id))
ENGINE=InnoDB COLLATE=utf8_unicode_ci;
create table athing (id int(11) not null auto_increment
, name varchar(255) not null
, status varchar(255) not null
, created_by_user_id int(11) not null
, PRIMARY KEY (id)
, CONSTRAINT athing_fk1 FOREIGN KEY (created_by_user_id) REFERENCES users (id)
) ENGINE=InnoDB COLLATE=utf8_unicode_ci;