<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Forum PostgreSQL - insert lub update dla pola typu character]]></title>
	<link rel="self" href="http://forum.postgresql.org.pl/extern.php?action=feed&amp;tid=1178&amp;type=atom"/>
	<updated>2011-11-30T16:03:05Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.postgresql.org.pl/viewtopic.php?id=1178</id>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3308#p3308"/>
			<content type="html"><![CDATA[OK, apostrofy same z siebie nie są wartością pola, tylko jego [b]ogranicznikami[/b]. Innymi słowy jak robisz test typu uwagi = '' i on przechodzi to znaczy, że faktycznie jest wartość to [b]pusty string[/b] (nie NULL). Jeżeli pole rzeczywiście przechowuje dwa apostrofy np. wstawione przez:

[code]INSERT  INTO jakas_tabela (jakas_kolumna) values E'\'\'';[/code]

to możesz użyć testu:

[code]WHERE jakas_kolumna = E'\'\''[/code]

W takim przypadku jest to tylko zasługa tego kto tak wstawił (człowiek, skrypt PHP/Perl, Java, whatever). Jeżeli chesz to "naprostować", to zawsze mozna użyć UPDATE dla danej tabeli np.

[code]UPDATE jakas_tabela SET jakas_kolumna = '' WHERE jakas_kolumna = E'\'\'';[/code]

ew. jak chcesz mieć NULL to zamień tylko SET jakas_kolumna = ''  na SET jakas_kolumna = NULL]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2011-11-30T16:03:05Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3308#p3308</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3307#p3307"/>
			<content type="html"><![CDATA[żeby było puste]]></content>
			<author>
				<name><![CDATA[przesq]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1211</uri>
			</author>
			<updated>2011-11-30T13:26:27Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3307#p3307</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3306#p3306"/>
			<content type="html"><![CDATA[A co chcesz mieć jeżeli to pole w formularzu jest nie wypełnione ? NULL ? Napisz coś więcej, bo tak to nie rozumiem o co Ci chodzi.]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2011-11-29T07:54:39Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3306#p3306</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3305#p3305"/>
			<content type="html"><![CDATA[Ja mam tak

uwagi VARCHAR(600) 
lub tak
uwagi character varying(600) 

w zależności jakim managerem podglądam, ale i tak domyślnie wstawia mi null jeżeli nic nie podaje]]></content>
			<author>
				<name><![CDATA[adamleon]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=873</uri>
			</author>
			<updated>2011-11-29T05:44:50Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3305#p3305</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3304#p3304"/>
			<content type="html"><![CDATA[co zrobić aby nie wstawiało tego pustego stringa '']]></content>
			<author>
				<name><![CDATA[przesq]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1211</uri>
			</author>
			<updated>2011-11-28T20:26:06Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3304#p3304</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Odp: insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3303#p3303"/>
			<content type="html"><![CDATA[Nie bardzo widzę gdzie tkwi problem. Jeżeli definiujesz kolumnę jak wyżej, to przypisek/modyfikator/atrybut NULL jest [b]opcjonalny[/b] i znaczy tylko tyle, że wartość dla tej kolumny może być NULL (w przeciwieństwie do NOT NULL). Innymi słowy możesz bez przeszkód tam wstawić:

[list=*]
[*]wartość NULL[/*]
[*]pusty string '' (to [b]nie[/b] jest to samo co NULL)[/*]
[*]inny string do 200 znaków (nie bajtów)[/*]
[/list]

Jak potrzebujesz testu na wartość NULL używaj IS NULL ew. ISNULL, przeciwnie IS NOT NULL ew. NOTNULL (te skróty są niestandardowe, więc roztropniej je w ogóle pomijać), dla pustego stringu wystarczy = '', czy <> ''.]]></content>
			<author>
				<name><![CDATA[gszpetkowski]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1223</uri>
			</author>
			<updated>2011-11-28T19:49:05Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3303#p3303</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[insert lub update dla pola typu character]]></title>
			<link rel="alternate" href="https://forum.postgresql.org.pl/viewtopic.php?pid=3302#p3302"/>
			<content type="html"><![CDATA[Mam w tabeli pole:

uwagi character varying(200) NULL,

i teraz jeżeli wstawiam coś do bazy z formularza i pole uwagi jest niewypełnione to wstawia mi znaki ''

końcówka zapytania: uwagi ='' WHERE id_wod=3;

jeżeli uwagi ='aaa' WHERE id_wod=3;

to wszystko jest w porządku - w kolumnie uwagi mam aaa.]]></content>
			<author>
				<name><![CDATA[przesq]]></name>
				<uri>https://forum.postgresql.org.pl/profile.php?id=1211</uri>
			</author>
			<updated>2011-11-28T19:28:14Z</updated>
			<id>https://forum.postgresql.org.pl/viewtopic.php?pid=3302#p3302</id>
		</entry>
</feed>
