आप दो पहलुओं को मिला रहे हैं:
- डेटा प्रकार कुछ मानों की अनुमति देना आपके पीके कॉलम के लिए
- प्रारूप आपने प्रदर्शन के लिए चुना है
AUTO_INCREMENT
MySQL की एक गैर-मानक अवधारणा है, SQL सर्वर IDENTITY(1,1)
का उपयोग करता है , आदि।
एक <का उपयोग करें कोड>धारावाहिक
पोस्टग्रेज में कॉलम:
CREATE TABLE users (
user_id serial PRIMARY KEY
, ...
)
यह एक छद्म प्रकार है जिसे पूर्णांक
. के रूप में लागू किया गया है संलग्न SEQUENCE<से कॉलम डिफ़ॉल्ट आरेखण के साथ डेटा प्रकार /कोड>
. पूर्णांक
आपके मामले (-2147483648 से +2147483647) के लिए आसानी से काफी बड़ा है।
यदि आपको वास्तव में अधिकतम 8 दशमलव अंकों वाली संख्याओं को लागू करने की आवश्यकता है, तो एक जाँच करें
बाधा
:
CONSTRAINT id_max_8_digits CHECK (user_id BETWEEN 0 AND < 99999999)
किसी भी तरह से संख्या प्रदर्शित करने के लिए - 0-गद्देदार से 8 अंक, आपके मामले के लिए, to_char()
:
SELECT to_char(user_id, '00000000') AS user_id_8digit
FROM users;
यह बहुत तेज़ है। ध्यान दें कि आउटपुट text
. है अब, नहीं पूर्णांक
.
SQL Fiddle.
आपके कोड में कुछ अन्य चीज़ें MySQL-विशिष्ट हैं:
int(8)
:int
का उपयोग करें ।डेटाटाइम
:उपयोग करेंtimestamp
।- <स्ट्राइक>
TYPE=INNODB
स्ट्राइक> :बस इसे छोड़ दें।