Olá,

Preciso pegar o último ID inserido ou atualizado em um ZSQL Method
para que eu possa usá-lo em outras tabelas relacionadas. Existe essa
possibilidade usando-se DTML ? Como fazê-lo?

O mySQL retorna o último ID inserido com a função LAST_INSERT_ID(),
que deve ser executada logo após o INSERT, logo preciso que ela seja
colocada na mesma transaction. Como passar isso em uma variável a ser
usada pelo método ZSQL?

Algo assim:

BEGIN;

INSERT INTO pessoa (id,nome) VALUES ( 0,<dtml-sqlvar nome_pessoa type=string>);

<dtml-setvar x = LAST_INSERT_ID();> # Existe alguma coisa assim?!?

INSERT INTO telefone (id, idpessoa, numero) VALUES (0,<dtml-sqlvar x
type=int>,<dtml-sqlvar numero_telefone type=int>);

COMMIT;


Existe alguma possibilidade de se fazer isso? Ou melhor, como
normalmente é feito esse tipo de operação no Zope/Plone? (usar ID's
auto-incrementais em suas tabelas relacionadas).


[]'s
--
Paul Eipper

Responder a