Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

विदेशी कुंजी बाधा के साथ तालिका बनाना विफल हो जाता है गलत तरीके से बनाया गया है

टेबल बनाने और फिर मौजूदा तालिकाओं के विरुद्ध बाधा डालने के लिए तृतीय पक्ष टूल का उपयोग करते समय मुझे यह संदेश कई बार प्राप्त हुआ है। यह या तो दो चीजों में से एक है:

  • 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;



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql_close का उपयोग करना ()

  2. EasyPHP में phpmyadmin का उपयोग करके sql फ़ाइल आयात करना

  3. mysql कॉलम में किसी शब्द को कैसे खोजें और बदलें?

  4. मैं PHP में क्रॉस डेटाबेस क्वेरी कैसे बनाऊं?

  5. MySQL एक डेटाबेस से दूसरे में सम्मिलित करें