தொகுதி பாடங்கள் (3/4)
கட்டமைப்பை மாற்றுதல்: ALTER TABLE
பயன்பாட்டின் தேவைகள் காலப்போக்கில் மாறுகின்றன, மேலும் தரவுத்தளம் தொடர்ந்து இருக்க வேண்டும். ALTER TABLE என்பது (மிகவும் பல்துறை) கட்டளையாக இருக்கும் அட்டவணைத் திட்டங்களை மாற்றுவதற்கு அர்ப்பணிக்கப்பட்டுள்ளது
நெடுவரிசைகளை மாற்றுதல் (சேர் / கைவிடுதல் / மாற்றுதல்)
நெடுவரிசையைச் சேர்ப்பதில் கவனம் தேவை. அட்டவணையில் ஏற்கனவே தரவு இருந்தால், "NOT NULL" நெடுவரிசையைச் சேர்ப்பது Postgres இல் பிழையை ஏற்படுத்தும்: பழைய வரிசைகளில் எதைச் செருக வேண்டும்? நீங்கள் 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 ஐப் போலவே, தயாரிப்பு பயன்பாட்டில் ஏற்கனவே பயன்பாட்டில் உள்ள அட்டவணையில் CONSTRAINT ஐ இணைக்க ALTER TABLE ஐப் பயன்படுத்தலாம்.
-- 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 ஐ விட அதிகமாக இருக்க வேண்டும் என்று CHECK தடையை ('verifica_prezzo' எனப் பெயரிடப்பட்டது) சேர்ப்பதன் மூலம் 'தயாரிப்புகள்' அட்டவணையை மாற்றவும். அசல் நெடுவரிசையை கைவிடாமல் தடை சேர்க்கப்பட வேண்டும்.
குறிப்பைக் காட்டு
தொடரியல்: அட்டவணையை மாற்றவும், கட்டுப்பாடான பெயரைச் சேர்க்கவும் சரிபார்க்கவும் (...)
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்