Re: [SQL] why don't this create table work?
От | Tom Lane |
---|---|
Тема | Re: [SQL] why don't this create table work? |
Дата | |
Msg-id | 18724.941607352@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | why don't this create table work? (User & <marc@oscar.noc.cv.net>) |
Ответы |
Re: [SQL] why don't this create table work?
|
Список | pgsql-sql |
User & <marc@oscar.noc.cv.net> writes: > nnm=> create table nnm_event_limits ( > nnm-> nodename varchar(256) not null, > nnm-> event_oid varchar(256) not null, > nnm-> always_never varchar(1) null, > nnm-> limit int4); > ERROR: parser: parse error at or near "null" > This is converted from openviews table scheema. Openviews is allowing stuff that is not in the SQL92 spec --- AFAICS there is nothing in the spec about a "NULL" column qualification. You can say "NOT NULL" or you can leave it out. > limit is not a reserved word as far as I can tell, any ideas? Yes it is. Probably we could allow it as a column name anyway, but it's not listed as a "safe" column ID in the 6.5 grammar. If you're determined to use it as a column name even though it's reserved, put double quotes around it, eg "limit" int4. But you'll have to do that every time you refer to it in a query, so choosing another name is probably the path of least resistance. > ps would useing text instead of varchar be a good thing to do? Use varchar if you have an application-defined reason to want to enforce a specific upper limit on the length of the string in a column. If you don't have any particular upper limit in mind, use text --- it's the same thing as varchar except for the limit. In the above example, I'll bet a nickel that you have no clear reason for specifying an upper limit of 256 on nodename and event_oid, so they should probably be text. If always_never can legitimately be either 0 or 1 chars long, but never more, then varchar(1) is the right declaration. (Perhaps it should always be 1 char long --- in that case you should've said char(1). Note that NULL is by no means the same thing as a zero-character string.) regards, tom lane
В списке pgsql-sql по дате отправления: