Главная страница


su.dbms.sql

 
 - SU.DBMS.SQL ------------------------------------------------------------------
 From : Vova Aksionov                        2:5020/400     21 Feb 2001  10:45:00
 To : All
 Subject : Re: mySQL вопрос (наверное дурацкий)
 -------------------------------------------------------------------------------- 
 
 On Tue, 20 Feb 2001 12:59:18 +0300, Alexander Bolotnov
 <Alexander.Bolotnov@p82.f4.n5052.z2.fidonet.org> wrote:
 
 >>      сначала получить новое значение PK в переменную
 >>      а потом уже вставлять в первую и вторую таблицу с использованием
 >>      этого PK. Естественно автоинкремент в самих таблицах при этом не
 >>      нужен.
 >
 >а как узнать максимальное значение в этой таблице?
 >можно в ман.
 
 С MySQL не работал и манов егоных не знаю а на InterBase к примеру это
 делается при помощи генератора примерно так:
 
 create procedure ins(name, age, email, web)
 as
 declare variable vid integer;
 begin
 select gen_id(generator_name, 1) from rdb$database into :vid;
 insert into t1(id, name, age) values(:vid, :name, :age);
 insert into t2(id, email, web) values(:vid, :email, :web);
 end;
 
 gen_id можно сэмулировать например так:
 
 create table gen_id
 (
 id   integer
 )
 insert into gen_id(id) values(0);
 
 в таблице остается всегда только одна запись и для получения нового id
 сначала делаем
 
 update gen_id set id = id + 1;
 
 и если удалось считываем id:
 
 select id from gen_id into :vid;
 commit;
 
 теперь уже можно вставлять.
 
 Варианты с select max(id) будут работать только при
 однопользовательской работе и их лучше не применять.
 
 Если есть возможность узнать id только что вставленной записи с
 autoincrement - то можно сначала вставлять в t1, узнавать там
 получившийся id и с ним вставлять в t2. Hо мне неизвестен способ
 узнать id autoincrement.
 
 Пока.
 ----------------------------------------------------------------
 Vova Aksionov    Novosibirsk, Akademgorodok    fraks@mail.nsk.ru
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 mySQL вопрос (наверное дурацкий)   Alexander Bolotnov   16 Feb 2001 19:22:31 
 mySQL вопрос (наверное дурацкий)   Konstantin Osipov   18 Feb 2001 17:04:14 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   19 Feb 2001 09:52:32 
 mySQL вопрос (наверное дурацкий)   Alexander Bolotnov   20 Feb 2001 13:59:18 
 Re: mySQL вопрос (наверное дурацкий)   Alex Mikhajlichenko   21 Feb 2001 11:41:57 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 12:28:47 
 mySQL вопрос (наверное дурацкий)   Mita Mikheev   21 Feb 2001 18:19:53 
 Re: mySQL вопрос (наверное дурацкий)   Alex Mikhajlichenko   21 Feb 2001 13:35:47 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 15:39:40 
 Re: mySQL вопрос (наверное дурацкий)   Vova Aksionov   21 Feb 2001 10:45:00 
 mySQL вопрос (наверное дурацкий)   Mita Mikheev   20 Feb 2001 11:39:52 
Архивное /su.dbms.sql/11749e4c8a885.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional