AMcoder - javascript, python, java, html, php, sql

PostgreSQL. Կարո՞ղ եք ստեղծել ինդեքս CREATE TABLE սահմանման մեջ:

Ես ուզում եմ ինդեքսներ ավելացնել ստեղծման վերաբերյալ աղյուսակի որոշ սյունակներում: Արդյո՞ք կա դրանք «ՍՏԵՂԾԵԼ ՍԵՂԱՆԻ» սահմանմանը ավելացնելու միջոց, թե՞ պետք է դրանք ավելացնեմ այլ հարցմամբ:

CREATE INDEX reply_user_id ON reply USING btree (user_id);

Պատասխանները:


1

Թվում է, թե CREATE TABLE շարահյուսությունում ինդեքս նշելու որևէ ձև չկա: Այնուամենայնիվ, PostgreSQL-ը լռելյայն ստեղծում է եզակի սահմանափակումների և հիմնական բանալիների ինդեքս, ինչպես նկարագրված է այս նշումը:

PostgreSQL-ն ավտոմատ կերպով ստեղծում է ինդեքս յուրաքանչյուր եզակի սահմանափակումների և հիմնական բանալիների սահմանափակումների համար՝ եզակիությունն ապահովելու համար:

Բացի դրանից, եթե ցանկանում եք ոչ եզակի ինդեքս, ապա ձեզ հարկավոր է ինքնուրույն ստեղծել այն առանձին CREATE INDEX հարցումով:

04.06.2011
  • Շնորհակալություն, ես չգիտեի ինդեքս ստեղծելու եզակի սահմանափակումների մասին: 05.06.2011
  • Նկատի ունեցեք, որ PostgreSQL-ն աջակցում է գործարքների սխեմայի թարմացումներին. լավ գաղափար է ՍԿՍԵԼ/ՊԱՏՎԻՐԵԼ ձեր CREATE TABLE և CREATE INDEX հայտարարությունների շուրջ, եթե ցանկանում եք, որ ընդհանուր աղյուսակի ստեղծումը հաջողվի կամ ամբողջությամբ ձախողվի: 20.05.2019

  • 2

    No.

    Այնուամենայնիվ, դուք կարող եք ստեղծել unique ինդեքսներ ստեղծման մեջ, բայց դա պայմանավորված է նրանով, որ դրանք դասակարգվում են որպես սահմանափակումներ: Դուք չեք կարող ստեղծել «ընդհանուր» ինդեքս:

    04.06.2011

    3

    Պիտեր Քրաուսը կանոնական պատասխան է փնտրում.

    Գոյություն ունի ԺԱՄԱՆԱԿԱԿԻՑ ՍԻՆՏԱՔՍ (2020 թ.), ուստի խնդրում ենք բացատրել և ցույց տալ օրինակներ, որոնք համատեղելի են postgresql.org/docs/current/sql-createtable.html-ի հետ։

    Դուք փնտրում եք ինդեքսի սահմանում, որը հասանելի չէ PostgreSQL-ի համար մինչև ընթացիկ տարբերակ 12-ը:

    ՍԵՂԾԵԼ ՍԵՂԱՆԱԿ

    [CONTRAINT constraint_name] {ՍՏՈՒԳՈՒՄ (արտահայտություն) [ՉԻ ԺԱՌԱՆԳՎԵԼ] | ՅՈՒՐԱՔԱԿԱՆ ( սյունակի_անուն [, ... ] ) ինդեքս_պարամետրեր | ՀԻՄՆԱԿԱՆ ԲԱՆԱԼ ( սյունակի_անուն [, ... ] ) index_parameters |


    Ներդիր սյունակի սահմանման օրինակելի շարահյուսությունը (այստեղ SQL Server).

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

    db‹>ջութակի ցուցադրություն

    Դրանց ներկայացման հիմքում ընկած հիմնավորումը բավականին հետաքրքիր է Ի՞նչ են ներկառուցված ինդեքսները: Phil Factorի կողմից

    19.03.2020
  • Բարև, լուծված է (!): Կարո՞ղ եք ինչ-որ բան ավելացնել ավելի բարդ գործի մասին, օրինակ b VARCHAR(10) NOT NULL INDEX idx_tab_b gin (b gin_trgm_ops) .. ինչպե՞ս ավելացնել ավելի շատ պարամետրեր առանց կրկնվող սյունակի անվանման: 20.03.2020
  • @PeterKrauss Իմ բերած օրինակը SQL Server-ի համար է, որը չի աջակցում gin_trgm_ops-ին: 21.03.2020
  • Բարև @LukaszSzozda Շարահյուսության համար, երևի թե կարող եք փորձել վերափոխել ցանկացած տեսակի CREATE INDEX idxName ON tableName USING MethodName (fieldName optionName); բարդ շարահյուսություն ներդիր ինդեքսի սահմանման: Հ.Գ. այս հարցը վերաբերում է PostgreSQL-ին, ոչ թե Microsoft-SQL-Server-ին (տես պիտակները): 21.03.2020
  • @PeterKrauss Ես լիովին տեղյակ եմ, որ այս հարցը վերաբերում է PostgreSQL-ին: Ես պարզապես տվեցի ձեզ այս հատկանիշի ճիշտ անունը և ցույց տվեցի օրինակ, թե ինչպես դա կարող է նման լինել: Հուսանք, որ ավելի շատ RDBMS ապագայում կաջակցի inlinde ինդեքսներին :) 21.03.2020
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..