Re: [SQL] Question about SQL FUnction

Поиск
Список
Период
Сортировка
От tolik@icomm.ru (Anatoly K. Lasareff)
Тема Re: [SQL] Question about SQL FUnction
Дата
Msg-id 87aeyc5fht.fsf@tolikus.hq.aaanet.ru
обсуждение исходный текст
Ответ на Question about SQL FUnction  (Martin Möderndorfer <mmoedern@linux.stuco.uni-klu.ac.at>)
Список pgsql-sql
>>>>> "d" == derndorfer  <Martin> writes:

 d> hi,
 d> i have some tables:

 d> create table person (nr int4, name varchar(50));
 d> create table book(nr int4, title varchar(50), persnr int4);

 d> (persnr is the foreign key -> person.nr)

 d> now i have some
 d> CREATE FUNCTION get_new_nr(**TABLE**,**FIELDS**) RETURNS int4;
 d> AS 'SELECT MAX($2) FROM $1 +1;'
 d> LANGUAGE 'sql';

 d> but **table** and **fields** needs some datatype. this function should
 d> return the max of a set of all numbers in person (+1) and return this.

 d> is it possible (and how ;-) to write such a very _flexible_ function??

 d> MArtin

I think this is not possible in 'sql' and 'plpgsql' functions. You
must use Tcl or C languages for these function. But if you wont have
auto-increment unique field you can use sequences:

create sequence s_person;

create table person (
  nr int default nextval('s_person') not null,
  name varchar(50)
);

insert into person (name) values('itisme');
insert into person (name) values('andyou');

select * from person;
nr    name
1     itisme
2     andyou


--
Anatoly K. Lasareff              Email:       tolik@icomm.ru
Senior programmer

В списке pgsql-sql по дате отправления:

Предыдущее
От: David Martinez Cuevas
Дата:
Сообщение: Re: [SQL] Question about SQL FUnction
Следующее
От: Ghita Voda
Дата:
Сообщение: Insert a long text