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

MySQL InnoDB:ऑटोइनक्रिकमेंट गैर-प्राथमिक कुंजी

हाँ आप कर सकते हैं। आपको बस उस कॉलम को एक इंडेक्स बनाना है।

CREATE TABLE `test` (
  `testID` int(11) NOT NULL,
  `string` varchar(45) DEFAULT NULL,
  `testInc` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`testID`),
  KEY `testInc` (`testInc`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


insert into test(
  testID,
 string
)
values (
1,
    'Hello'
);


insert into test( 
testID,
 string
)
values (
2,
    'world'
);

'TestInc' के लिए ऑटो-इंक्रीमेंटिंग मानों वाली पंक्तियाँ सम्मिलित करेगा। हालांकि यह वास्तव में एक बेवकूफी भरा काम है।

आपने इसे करने का सही तरीका पहले ही बता दिया है:

"book_id, टाइमस्टैम्प, user_id पर एक अद्वितीय अनुक्रमणिका के माध्यम से comment_id PK बनाएं और अखंडता लागू करें।"

ठीक ऐसा ही आपको करना चाहिए। यह न केवल आपको उस तालिका के लिए एक उचित प्राथमिक कुंजी प्रदान करता है जिसकी आपको भविष्य के प्रश्नों के लिए आवश्यकता होगी, यह कम से कम विस्मय का सिद्धांत



  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 कॉलम लंबाई/मान कैसे प्राप्त कर सकता हूं?

  2. '0000-00-00 00:00:00' को java.sql के रूप में प्रदर्शित नहीं किया जा सकता है। टाइमस्टैम्प त्रुटि

  3. रीबूट के बाद शैल स्क्रिप्ट कैसे जारी रखें?

  4. पंक्तियों को अलग करने के लिए अद्यतन के लिए चयन... का उपयोग करने का न्यूनतम उदाहरण

  5. जावा, वर्तमान डेटाबेस को दूसरे में कैसे बदलें?