మాడ్యూల్ పాఠాలు (3/4)
నిర్మాణాన్ని మార్చడం: ALTER TABLE
ఒక అప్లికేషన్ యొక్క అవసరాలు కాలానుగుణంగా మారుతాయి మరియు డేటాబేస్ తప్పనిసరిగా కొనసాగుతుంది. ALTER TABLE అనేది ఇప్పటికే ఉన్న టేబుల్ స్కీమాలను సవరించడానికి అంకితం చేయబడిన (అత్యంత బహుముఖ) కమాండ్ _ని డ్రాప్ చేయకుండానే (లోపల డేటాను రిస్క్ చేస్తుంది).
నిలువు వరుసలను సవరించడం (జోడించు / డ్రాప్ / ఆల్టర్)
నిలువు వరుసను జోడించడానికి జాగ్రత్త అవసరం. పట్టిక ఇప్పటికే డేటాను కలిగి ఉన్నట్లయితే, "NOT NULL" నిలువు వరుసను జోడించడం వలన పోస్ట్గ్రెస్లో లోపం ఏర్పడుతుంది: పాత అడ్డు వరుసలలో అది ఏమి చొప్పించాలి? మీరు తప్పనిసరిగా DEFAULTని అనుబంధించాలి.
-- Aggiungiamo una colonna
ALTER TABLE users ADD COLUMN age INTEGER; -- Ok, sarà NULL ovunque
-- Aggiungiamo NOT NULL, quindi diamogli un deafult
ALTER TABLE users ADD COLUMN active BOOLEAN NOT NULL DEFAULT true;
-- Cancellare una colonna (ATTENZIONE! i dati andranno persi)
ALTER TABLE users DROP COLUMN age;జోడించడం లేదా తీసివేయడం మాత్రమే కాదు: మీరు తరచుగా కాలమ్ యొక్క type లేదా దాని పరిమితుల్లో ఒకదాన్ని మళ్లీ కాన్ఫిగర్ చేయాలి:
-- Cambia il tipo di dato (postgreSQL farà un 'cast' dei dati esistenti se possibile)
ALTER TABLE users ALTER COLUMN username TYPE VARCHAR(100);
-- Aggiunge il vincolo NOT NULL
ALTER TABLE users ALTER COLUMN username SET NOT NULL;
-- Rimuove il vincolo NOT NULL (ritorna ad accettare null)
ALTER TABLE users ALTER COLUMN username DROP NOT NULL;రన్టైమ్లో పరిమితులను జోడిస్తోంది
CREATE TABLE మాదిరిగానే, మేము ALTER TABLEని ఉపయోగించి CONSTRAINTని ఉత్పత్తి యాప్లో ఇప్పటికే ఉపయోగంలో ఉన్న టేబుల్కి జోడించవచ్చు.
-- Aggiungi un nuovo Foreign Key
ALTER TABLE orders
ADD CONSTRAINT fk_order_status FOREIGN KEY (status_id) REFERENCES statuses(id);
-- Aggiungi un CHECK
ALTER TABLE products
ADD CONSTRAINT price_positive CHECK (price > 0);
-- E per distruggerli?
ALTER TABLE products DROP CONSTRAINT price_positive;పేరు మార్చడం
నిలువు వరుసలు మరియు పట్టికలు రెండింటినీ పేరు మార్చవచ్చు:
ALTER TABLE users RENAME TO auth_users;
ALTER TABLE auth_users RENAME COLUMN username TO login_name;దీనిని ప్రయత్నించండి
'ఉత్పత్తుల' పట్టిక ప్రస్తుతం 'పేరు' నిలువు వరుసను కలిగి ఉంది. 'పేరు' నిలువు వరుస పేరును 'శీర్షిక'గా మార్చడం ద్వారా పట్టికను సవరించండి. RENAME COLUMN ఆపరేషన్ని ఉపయోగించండి.
సూచనను చూపించు
సింటాక్స్: పట్టికను మార్చండి ... కాలమ్ని పేరు మార్చండి ... టు ...
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది
పోస్ట్-ప్రొడక్షన్లో పరిమితులను జోడించడం
ధర (నిలువు 'ధర') 0 కంటే ఎక్కువగా ఉండాల్సిన చెక్ నిర్బంధాన్ని ('verifica_prezzo' పేరుతో) జోడించడం ద్వారా 'ఉత్పత్తుల' పట్టికను సవరించండి.
సూచనను చూపించు
వాక్యనిర్మాణం: పట్టికను మార్చండి నిర్బంధ పేరును జోడించండి తనిఖీ చేయండి (...)
3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది