🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi.bazy-danych
Article #82417

Re: Firebird - dodawanie pola not null z wartością domyślną

#82417
From: wloochacz
Date: Wed, 26 Nov 2014 15:36
41 lines
2947 bytes
W dniu 2014-11-26 16:03, bunias80@gmail.com pisze:
> W dniu środa, 26 listopada 2014 15:23:47 UTC+1 użytkownik Tomek D napisał:
>
>> "default" nie jest rozwiązaniem na wypełnienie nowo dodanego pola zadaną
>> wartościa, ale dla zapewnienia wartości jeśli nie zostanie ona jawnie
>> wyspecyfikowania w poleceniu INSERT.
I UPDATE takoż, a dokładnie - jeśli pole z wartością domyślną zostanie 
pominięte przy operacjach DML, to zostanie tam wsadzona wartość domyślna.

> fragment z dokumentacji
> "    alter table Adventures add id int default -1 not null
>
> Default values are normally not applied when adding fields to existing rows, but with NOT NULL fields they are.
>
> "
> więc chyba jednak jest
I tak powinno to zadziałać; a więc, jeśli robisz ADD FIELD NOT NULL with 
DEFAULT, to przy dodaniu tego nowego pola do tabeli jego wartość powinna 
zostać automatycznie ustalona tym, co zostało określone jako wartość 
domyślna. Ale to zadziała tylko i wyłącznie wtedy, kiedy od razu nadasz 
ograniczenie NOT NULL.

A jeśli zrobiłeś tak:
1) Dodaj nowe pole z wartością domyślną
2) Druga operacja - nadanie ograniczenia not null
To efekt będzie taki, jak opisujesz.


>> Bardzo często przy większych zmianach w bazie konieczne jest rozbicie na
>> kilka transakcji, więc mechanizm i tak jest niezbędny.
>
> Tutaj tematem nie jest jak zrobić aktualizację tylko czy ktoś stosuje samo add not null default.... i mu to działa czy może to jednak babol FB
W MSSQL działa ;-)

>> Być może dodawałeś pole do pustej tabeli to problemu nie było.
> Nie....nawet kilkadziesiąt tyś. rekordów.
>


-- 
wloochacz
Technical Details
Message-ID: <5475f386$0$2154$65785112@news.neostrada.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <8e2dbff4-cc02-4704-8a4a-e59aeb964efb@googlegroups.com> <m548hu$pqb$1@node1.news.atman.pl> <769ff04d-b5f3-4038-bb92-f4962a7a71d1@googlegroups.com> <m54npi$br9$1@node1.news.atman.pl> <fa3a5a56-7287-405e-9e85-889150da7848@googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.supermedia.pl!newsfeed2.atman.pl!newsfeed.atman.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
Date: Wed, 26 Nov 2014 16:36:21 +0100
From: wloochacz <wloochacz@no.spam.gmail.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0
MIME-Version: 1.0
Newsgroups: pl.comp.lang.delphi.bazy-danych
Subject: Re: Firebird - dodawanie pola not null z
 wartością domyślną
References: <8e2dbff4-cc02-4704-8a4a-e59aeb964efb@googlegroups.com> <m548hu$pqb$1@node1.news.atman.pl> <769ff04d-b5f3-4038-bb92-f4962a7a71d1@googlegroups.com> <m54npi$br9$1@node1.news.atman.pl> <fa3a5a56-7287-405e-9e85-889150da7848@googlegroups.com>
In-Reply-To: <fa3a5a56-7287-405e-9e85-889150da7848@googlegroups.com>
Lines: 41
Message-ID: <5475f386$0$2154$65785112@news.neostrada.pl>
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 83.11.166.5
X-Trace: 1417016198 unt-rea-b-01.news.neostrada.pl 2154 83.11.166.5:59206
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit