[teiid-issues] [JBoss JIRA] (TEIID-5763) GENERATED_KEY returns NULL if used in INSTEAD OF INSERT Triggers in DDL files
Christoph John (Jira)
issues at jboss.org
Sat Jun 15 17:02:00 EDT 2019
[ https://issues.jboss.org/browse/TEIID-5763?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13747513#comment-13747513 ]
Christoph John commented on TEIID-5763:
---------------------------------------
Hello Steven,
thank you very much, I would have never found this solution !!!
I checked the documentation. but I could not find anything about this "key" variable. Is it a special variable like OLD and NEW? And for what is it good for in general? More use cases involved I should know of?
Seems it does not matter if I move key.fkProduct = vIdProduct before INSERT INTO
QuicklyAddedProducts_SRC(...) or not. Please give me an explanation for the key variable, at the moment it looks like magic to me :)
Shall I add a further jira issue to enhance the documentation in respect to the topic? Would be great to have the key described and a simple example like the one we just addressed. I assume others will run into this issue as well.
Good place might be http://teiid.github.io/teiid-documents/12.0.x/content/reference/Update_Procedures_Triggers.html
> GENERATED_KEY returns NULL if used in INSTEAD OF INSERT Triggers in DDL files
> -----------------------------------------------------------------------------
>
> Key: TEIID-5763
> URL: https://issues.jboss.org/browse/TEIID-5763
> Project: Teiid
> Issue Type: Bug
> Affects Versions: 12.2
> Reporter: Christoph John
> Assignee: Steven Hawkins
> Priority: Blocker
>
> The issue arrised in:
> https://developer.jboss.org/message/989700#989700
> Following sceanarios are given:
> Variant 1:
> Table Product(id), primary key = autoincrement;
> Table QuicklyAddedProduct, primary key is foreign key on Product.id
> Table Diary_SRC
> View Diary on Diary_SRC
> INSTEAD OF INSERT Trigger on Diary should :
> -create new record on Product,
> -get autoincremented Product.id of new record,
> - create new QuicklyAddedProduct with returned Product.id as primary key
> - create new Diary record with QuicklyAddedProduct
> {
> INSERT a new record on Product;
> idProduct = CONVERT(GENERATED_KEY('idProduct'),long); // fails
> }
> Variant 2:
> INSTEAD OF INSERT trigger on Diary should :
> - create new QuicklyAddedProduct
> - add Quickly added prodcut to Diary
> additionally a INSTEAD OF trigger on QuicklyAddedProduct exists which:
> - creates new Product record
> - uses returned GENERATED_KEY(Product.id) to add record on QuicklyAddedProduct with Product.id as primary key
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
More information about the teiid-issues
mailing list