जवाबों:
CREATE TABLE
वाक्य-विन्यास में किसी सूचकांक को निर्दिष्ट करने का कोई तरीका प्रतीत नहीं होता है । PostgreSQL इस नोट में वर्णित है, लेकिन डिफ़ॉल्ट रूप से अद्वितीय बाधाओं और प्राथमिक कुंजी के लिए एक सूचकांक बनाता है :
PostgreSQL स्वचालित रूप से अद्वितीयता को लागू करने के लिए प्रत्येक अद्वितीय बाधा और प्राथमिक कुंजी बाधा के लिए एक सूचकांक बनाता है।
इसके अलावा, यदि आप एक गैर-अद्वितीय सूचकांक चाहते हैं, तो आपको इसे एक अलग CREATE INDEX
क्वेरी में खुद बनाना होगा ।
पीटर क्रूस एक विहित उत्तर की तलाश में है:
एक MODN SYNTAX (वर्ष 2020) हैं, इसलिए कृपया समझाएं और उदाहरण दिखाएँ, postgresql.org/docs/current/sql-createtable.html
आप इनलाइन इंडेक्स डेफिनेशन की खोज कर रहे हैं , जो वर्तमान संस्करण 12 तक पोस्टग्रेसीक्यूएल के लिए उपलब्ध नहीं है। UNIQUE / PRIMARY KEY बाधा को छोड़कर, जो आपके लिए अंतर्निहित इंडेक्स बनाता है।
[CONSTRAINT constraint_name] {CHECK (अभिव्यक्ति) [सं।] | UNIQUE (column_name [, ...) index_parameters | प्राथमिक कुंजी (column_name [, ...) index_parameters |
इनलाइन कॉलम परिभाषा का नमूना सिंटैक्स (यहां SQL सर्वर):
CREATE TABLE tab(
id INT PRIMARY KEY, -- constraint
c INT INDEX filtered (c) WHERE c > 10, -- filtered index
b VARCHAR(10) NOT NULL INDEX idx_tab_b, -- index on column
d VARCHAR(20) NOT NULL,
INDEX my_index NONCLUSTERED(d) -- index on column as separate entry
);
उन्हें पेश करने के पीछे तर्क काफी दिलचस्प है कि इनलाइन इंडेक्स क्या हैं? फिल फैक्टर द्वारा
b VARCHAR(10) NOT NULL INDEX idx_tab_b gin (b gin_trgm_ops)
.. रिपीट कॉलम नाम के बिना अधिक पैरामीटर कैसे जोड़ें?
CREATE INDEX idxName ON tableName USING MethodName (fieldName optionName);
को इनलाइन इंडेक्स परिभाषा के सिंटैक्स में बदलने की कोशिश कर सकते हैं । पुनश्च: यह सवाल Microsoft-SQL- सर्वर नहीं (टैग देखें) PostgreSQL के बारे में है।