முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 9 · பாடம் 3 இன் 4பாடத்திட்டத்தில் 35/57~10 min
தொகுதி பாடங்கள் (3/4)

கட்டமைப்பை மாற்றுதல்: ALTER TABLE

பயன்பாட்டின் தேவைகள் காலப்போக்கில் மாறுகின்றன, மேலும் தரவுத்தளம் தொடர்ந்து இருக்க வேண்டும். ALTER TABLE என்பது (மிகவும் பல்துறை) கட்டளையாக இருக்கும் அட்டவணைத் திட்டங்களை மாற்றுவதற்கு அர்ப்பணிக்கப்பட்டுள்ளது

நெடுவரிசைகளை மாற்றுதல் (சேர் / கைவிடுதல் / மாற்றுதல்)

நெடுவரிசையைச் சேர்ப்பதில் கவனம் தேவை. அட்டவணையில் ஏற்கனவே தரவு இருந்தால், "NOT NULL" நெடுவரிசையைச் சேர்ப்பது Postgres இல் பிழையை ஏற்படுத்தும்: பழைய வரிசைகளில் எதைச் செருக வேண்டும்? நீங்கள் DEFAULT ஐ இணைக்க வேண்டும்.

SQL
-- 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 அல்லது அதன் கட்டுப்பாடுகளில் ஒன்றை நீங்கள் அடிக்கடி மீண்டும் கட்டமைக்க வேண்டும்:

SQL
-- 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 ஐப் பயன்படுத்தலாம்.

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

மறுபெயரிடுதல்

நெடுவரிசைகள் மற்றும் அட்டவணைகள் இரண்டையும் மறுபெயரிடலாம்:

SQL
ALTER TABLE users RENAME TO auth_users;
ALTER TABLE auth_users RENAME COLUMN username TO login_name;

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#sql.m9.l3.e1
முயற்சிகள்: 0ஏற்றுகிறது…

'தயாரிப்புகள்' அட்டவணையில் தற்போது 'பெயர்' நெடுவரிசை உள்ளது. 'பெயர்' நெடுவரிசையை 'தலைப்பு' என மறுபெயரிடுவதன் மூலம் அட்டவணையை மாற்றவும். RENAME COLUMN செயல்பாட்டைப் பயன்படுத்தவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

தொடரியல்: அட்டவணையை மாற்றவும் ... நெடுவரிசையை மறுபெயரிடவும் ... செய்ய ...

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

பிந்தைய தயாரிப்பில் கட்டுப்பாடுகளைச் சேர்த்தல்

உடற்பயிற்சி#sql.m9.l3.e2
முயற்சிகள்: 0ஏற்றுகிறது…

விலை (நெடுவரிசை 'விலை') 0 ஐ விட அதிகமாக இருக்க வேண்டும் என்று CHECK தடையை ('verifica_prezzo' எனப் பெயரிடப்பட்டது) சேர்ப்பதன் மூலம் 'தயாரிப்புகள்' அட்டவணையை மாற்றவும். அசல் நெடுவரிசையை கைவிடாமல் தடை சேர்க்கப்பட வேண்டும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

தொடரியல்: அட்டவணையை மாற்றவும், கட்டுப்பாடான பெயரைச் சேர்க்கவும் சரிபார்க்கவும் (...)

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்