ALTER TABLE

1. Tabeli muuta ja lisada uus veerg

ALTER TABLE Kasutaja ADD Elukoht varchar(20);

2. Tabeli muutmine ja olemasoleva veeru kustutamine:

ALTER TABLE Kasutaja DROP COLUMN Elukoht;

3. Tabeli muutmine ja veeru andmetüübi vahetamine.

ALTER TABLE Kasutaja ALTER COLUMN Parool varchar(50);

MariaDB ja XAMPP ALTER TABLE kasutaja MODIFY Parool varchar(50);

Protseduuri loomine – mis küsib kas lisada või kustutada veergu ja mis veerunimi on?

--Table editing procedure (Add & Drop)
CREATE Procedure MuudaTabeli
@Tegevus varchar(15),
@TabeliNimi varchar(15),
@VeeruNimi varchar(15),
@Andmetyyp varchar(15) = null --Null = 0 if data type isn't declared
AS
Begin
	DECLARE @SQLTegevus AS varchar (max)
	SET @SQLTegevus = Case
		When @Tegevus = 'Add' then
		concat('ALTER TABLE ', @TabeliNimi, ' ADD ', @VeeruNimi, ' ', @Andmetyyp)
		When @Tegevus = 'Drop' then
		concat('ALTER TABLE ', @TabeliNimi, ' DROP COLUMN ', @VeeruNimi)
	END;

print @SQLTegevus;

Begin
EXEC(@SQLTegevus);
END;
END;
--Procedure call
EXEC MuudaTabeli @Tegevus='Add', @TabeliNimi='Kasutaja', @VeeruNimi='Test', @Andmetyyp=int;

Select * From Kasutaja;

--Procedure call 2 (Deletion)
EXEC MuudaTabeli @Tegevus='Drop', @TabeliNimi='Kasutaja', @VeeruNimi='Test';

Piirangud: UNIQUE, NOT NULL, PRIMARY KEY, FOREIGN KEY, CHECK

--PK lisamine
ALTER TABLE City
ADD CONSTRAINT pk_ID PRIMARY KEY(ID);
--Unique lisamine
ALTER TABLE City
ADD CONSTRAINT CityName_unique UNIQUE(CityName);
--Andmete lisamine
INSERT INTO City(ID, CityName)
VALUES (2, 'Tartu');
ALTER TABLE Country
ADD CONSTRAINT fk_City FOREIGN KEY(Capital)
REFERENCES City(ID);