mihmih
23.06.2016, 08:11:40
witam,
chciałbym zrobić widok w mojej bazie i mam kilka wątpliwości:
1. Czy jeśli po utworzeniu widoku z daną kolumną usunę tą kolumnę z tabeli, to w widoku ta kolumna cały czas zostanie? Czy w takiej sytuacji nie można usunąć takiej kolumny z tabeli jeśli jest użyta w widoku?
2. Czy jeśli widok utworzę z polecenia SELECT * FROM tabela1, a po jakimś czasie dodam nową kolumnę w tabeli tabela1, to pojawi się ona w widoku?
3. W widoku nie chce mieć jednej kolumny z danej tabeli, czy można to jakoś zapisać, używając gwiazdki, to znaczy SELECT * z wyjątkiem....? A nie chce wymieniać pozostałych kolumn ręcznie no bo jeśli kiedyś dojdzie mi jakas nowa kolumna w tabeli to będę miał problem....
Z góry dzięki za pomoc.
Pyton_000
23.06.2016, 08:29:34
1. Jeśli zapiszesz nazwę kolumny w widoku i usuniesz ją z tabeli to wywali błąd przy odpalaniu widoku
2. Tak, pojawi się.
3.
http://stackoverflow.com/a/11060861/3732803 i ogólne cały wątek.
mmmmmmm
23.06.2016, 09:15:12
AD 2. Nie, nie pojawi się.
Test:
create table test1
(id int not null auto_increment primary key,
imie varchar(20));
insert into test1(imie) values('ala'), ('ola'), ('ula');
create view v_test1 as select * from test1;
alter table test1 add column nazwisko varchar(20);
select * from v_test1;
wynika to z tego, że tworząc view MySQL domyślnie nie zapisuje *, tylko "tłumaczy" to sobie na wszystkie pola.
Możesz to sprawdzić w każdym momencie przez
SHOW CREATE VIEW v_test1;