CREATING A TRIGGER WHO PICKS UP THE LAST INSERTED RECORD

Hello everyone


My question. is it possible to incorporate a SQL whitin a trigger? the thing is that when I have to insert the value, it actually would have to recover from another table. After INSERTION, but he must know what name I inserted in table 1 to also insert it in table 2.

More precisely. Imagine a table with user names and passwords that I fill like I put them up

So I need a trigger that if she sees that I entered this username, he takes and fills another table as more a generated sequence that could be the result of a string function

CREATE OR REPLACE
GENERATE_SEQUENCE RELAXATION
AFTER INSERT ON USERS_TABLE
FOR EACH LINE
BEGIN
insert into GENERATED_SEQUENCES_TABLE (lastinserted_name, surrogate_key)
values (SELECT name from USER OF USERS_TABLE WHERE USERID..., SUBSTR (lastinsertedname¦¦ password), 1.12);
END;

so this name of lastinserted is what I'm trying to recover. I mean if not madness to insert an sql query in the way I did, I could write in the query to select the ID of the PK and which would give me the name inserted.


Thank you very much


Alvaro

In an insert trigger you can reference all the insert values with: new.column_name, there is therefore no need to select in the table USERS_TABLE:

CREATE OR REPLACE
TRIGGER GENERATE_SEQUENCE
AFTER INSERT ON USERS_TABLE
FOR EACH ROW
BEGIN

insert into GENERATED_SEQUENCES_TABLE (lastinserted_name,surrogate_key)
values(:new.USERNAME, ...);

END;
/

Max
[My Italian blog Oracle | http://oracleitalia.wordpress.com/2010/02/05/gestione-degli-errori-in-sql-con-log-errors/]

Tags: Database

Similar Questions

  • Can't seem to get the ID of the last inserted record

    I'm fighting to get the auto-increment the query ID.

    I need the form to be submitted and on the same page, view the token ID (deuxieme in the last line of code below).

    Here is the code:

    <? php require_once('Connections/connection_mysqli.php');? >

    <? PHP

    If (! isset {})

    session_start();

    }

    ? >

    <? PHP

    Download MM_USERNAME modules.

    $sessionusername = $_SESSION ['MM_Username"];

    $u_sql = "SELECT * OF USERS WHERE username =" "." $sessionusername. » ' « ;

    $u_query = $con-> query ($u_sql);

    $u_row = $u_query-> fetch_assoc();

    Define user variables.

    $u_id = $u_row ['id'];

    $u_username = $u_row ["username"];

    $u_firstname = $u_row ["firstname"];

    $u_lastname = $u_row ["lastname"];

    $u_email = $u_row ['email'];

    ? >

    <? PHP

    Set e-mail support variables.

    $s_user_id = $u_id;

    $s_username = $u_username;

    $s_firstname = $u_firstname;

    $s_lastname = $u_lastname;

    $s_email = $u_email;

    $s_userlevel = $u_row ["userlevel"];

    $s_subject = $_POST ["subject"];

    $s_message = $_POST ['message'];

    $s_status = "pending";

    Submit in support table.

    {if (isset($_POST['submit']))}

    $s_sql = "INSERT INTO support (user_id, username, firstname, lastname, email, subject, message, status) VALUES ('$s_user_id', '$s_username', '$s_firstname', '$s_lastname', '$s_email', '$s_subject', '$s_message', '$s_status');

    $s_query = $con-> query ($s_sql);

    }

    $last_id = $con-> insert_id;

    ? >

    Take another look at your code. The value is assigned to $last_id, but the PHP block in your div uses $lastid. Put in underscore, and it will work.

  • Create a trigger to check if the synonym already exists in the db

    Hello
    How can I create a trigger to check if the synonym already exists in the db and if exists then do not create a synonym.

    my work: (it's like a schematic I developed)

    Select * from all_synonyms;
    declare
    number of s_exists;
    Start
    -checks if the synonym
    Select 1 in s_exists to all_synonyms;
    -a mistake gets stimulus if it's not
    exception when no_data_found then
    -The DOF should be done inside
    run immediately ' create or replace synonym;
    end;
    /

    any help is really appreciated...

    Thank you

    Published by: Vinay Mummadi on 29 March 2013 12:51

    There are a few rules of trade more that you need to consider.

    Do not forget that there are synonyms both PUBLIC and PRIVATE.

    Just because there is a synonym of a given name does NOT mean it's the only one who tries to create a given user. If a user tries to create a synonym private, you need see if the OWNER and the NAME, the two match.

    What is a user issuing a CREATE or REPLACE for their own private synonym? Is this OK or who need help also?

  • How to know the last inserted rows (database 10g)

    Dear administrators,

    could you please tell me how to query a table and even inserted datetime?

    in fact, I have a table and I need to know the date and the last inserted rows.

    The database is 10g

    Thanks in advance

    Elijah

    Published by: user644597 on January 8, 2009 14:17

    Published by: user644597 on January 8, 2009 14:17

    Seems very late right now.
    You can take a look at the standard function SCN_TO_TIMESTAMP (doc link below), but be aware, the results are NOT 100% guaranteed to be right:
    http://download.Oracle.com/docs/CD/B19306_01/server.102/b14200/functions142.htm#SQLRF06325

    Nicolas.

  • If you create an animation you can loop the last images of this animation if a key is held down?

    OK let's create you a button which, when he is pressed to play an animation of 20 frames realsed if he goes to the framework one and stops when he plays on this animation. in the section allows you to have an animation of fire and you want the home to apear and unless the user sound to the bottom of the animation has reached the end of the time line and loops back and he played the last 5 frames of animation, and once it is loose, it will to and stops at the framework one. Well, I know how to make a button that pressed once play an animation. And I know how to say what is released to and stops to frame a. What I do not know how to do is a loop of the fire on the last images of 5 or 6 so that the user can hold down throughout the day and unfold this animation. Thank you for any wait you may have.

    Just put an order in the last frame to gotoAndPlay (#), where # is some number of frame is 5 or 6 frames at the end

  • Double insert into, how to get the last insert id

    Hi all

    I need to insert some values into 2 tables, and on the second Board, I put the last id inserted in the first table. I actually did more the thing, but it does not work:

    insert into ADDRESS (id, street, neighborhood, zip code, city, idcountry, phonenumber, fax, phone, mail, post number) values (",", ",", ",", "," "," ");
    insert into samplecenter (ID, idaddress, samplecentername) values (", * IDENT_CURRENT ('ADDRESS') *,"GENERAL - CO");

    -What someone could help me.

    Thank you very much.
    Jarod.

    You must use a sequence.

    for example

    create sequence address_seq
    minvalue 1
    maxvalue 1000000000000000
    start with 1
    increment by 1
    nocache;
    
    insert into ADDRESS (id, street, area, zipcode, town, idcountry, phonenumber, faxnumber, gsm, mail, post)
      SELECT
             address_seq.NEXTVAL,'','','', '', '', '', '', '', '', ''
        FROM dual;
    
    insert into samplecenter (ID, idaddress, samplecentername) values ('',address_seq.CURRVAL,'GENERALE - CO');
    
  • Need to retrieve the last line/record in a table

    Hello

    I have a requirement like getting the ending balance of the last record in the table and the same insertion in the opening balance of the immediatetly created the next record.

    In simple terms, I need to extract a value from the last line of the recording.

    For example, I use the query below

    Select rownum emp, empno, ename
    where rownum = (select count (rownum) from emp);

    But, the above query does not return all of the recording.

    Therefore, need help on this.

    Kind regards
    Shivakumar has

    Published by: shiva March 27, 2011 22:14

    Hello
    Strictly speaking there is no such LAST or FIRST folder until that order you them.
    But check the following:

    SELECT * FROM emp MINUS
    SELECT * FROM emp WHERE rownum<=(SELECT count(empno)-1 FROM emp);
    

    Kind regards
    Lakshmi.

  • Get the last inserted into the table, SQL Server Uniqueidentifier

    I'm looking for the code that will make me the last ID entered in a table.  I am using SQL Server and have the ID defined as uniqueidentifiers.  I tried SCOPE_IDENTITY() and had a problem.  I also want to make sure that it is for this unique insert, not an insert that has crept into almost at the same time.

    Thank you!

    NCC

    I'm looking for the code that will make me the last ID entered in a table.  I am using SQL Server and have the ID defined as uniqueidentifiers.  I tried SCOPE_IDENTITY() and had a problem.  I also want to make sure that it is for this unique insert, not an insert that has crept into almost at the same time.

    SCOPE_IDENTITY() only works with identity columns.  If your table does not identity column, it will be of no use to you. Neither will 'result' of cfquery attribute such that it only works with ms sql identity values too.

    As far as I KNOW, there is no method integrated to automatically return a newly created uniqueidentifier.  The closest you can get in MS SQL 2005, without involving triggers, use an OUTPUT clause.

    SET NOCOUNT ON
    INSERT INTO yourTable (ColumnA, ColumnB)
    OUTPUT inserted.yourIDColumn
    VALUES ('foo', 'bar')

    SET NOCOUNT OFF

    Post edited by: == cfSearching == -.

  • Select the last 10 records in a table

    Oracle9i. I am trying to select the last 10 numbers in a table with this command series
    select serial from tab_42 where employeecode='00001'  and rownum<=10 order by serial desc;
    but it's not not selecting the most recent serial number 10. How to do?

    The rownum clause is applied before the order by clause, one must use a subquery...

    select * from (select serial from tab_42 where employeecode='00001' order by serial desc) where rownum<=10;
    
  • How to select the last 3 records in a table?

    I have a table named HRM_ATTENDANCE
    as follows
    Name         Type         Nullable Default Comments 
    ------------ ------------ -------- ------- -------- 
    LEAVEDATE    DATE                                   
    EMPLOYEECODE VARCHAR2(8)                            
    LEAVETYPE    VARCHAR2(4)                            
    APPROVEDBY   VARCHAR2(8)  Y                         
    FEEDBY       VARCHAR2(8)  Y                         
    FEEDTIME     DATE         Y                         
    REMARKS      VARCHAR2(50) Y 
    the table contains the record of leave of employees as follows
    LEAVEDATE   EMPLOYEECODE LEAVETYPE APPROVEDBY FEEDBY   FEEDTIME    REMARKS
    ----------- ------------ --------- ---------- -------- ----------- --------------------------------------------------
    6/1/2013    00001        CL  
    6/3/2013    00001        EL                                         
    6/5/2013    00001        CPL    
    6/7/2013    00001        SL 
    6/9/2013    00001        CL                                        
    I want to select the last 3 leaves (records) to employeecode "00001" so I don't know the what are the dates of the leave. in easy words I want to choose the folder where leavedate > = 5 June 2013 ", but I don't know any dates."

    Select * from HRM_ATTENDANCE where rownum<=3 order="" by="" leavedate="">

  • Apex 5 How do I retrieve the value inserted record in the form of DML

    Hi Experts,

    I have a DML form page which I created with the Wizard "form on a Table with the report." This form has a created apex "automatic processing line (DML) ' process that inserts, updates, and deletes the record in the TRXHIST table. This form use ROWID as a primary key column. The table TRXHIST is to have primary key as a field that uses the TRX_ID_SEQ sequence. There's a trigger on this table that deals with this sequence. Now the records are get inserted, updated and deleted and I am able to show the message with equal success.

    Now, I have a requirement to indicate problem (that will be generated over this insertion using the sequenceof TRX_ID_SEQ ) in the success message, so that the user can be noted.

    Can you please help in this.

    Thank you very much

    Thierry

    Hi Thierry,.

    1. The page element existing Pxxx_ROWID and rename it to Pxxx_TRX_ID, set the attribute column of field data.
    2. In the LMD processes change the ROWID to TRX_ID and Pxxx_ROWID to Pxxx_TRX_ID references
    3. Make sure "Return Key in Item" is defined on Pxxx_TRX_ID
    4. In your success message of process you can use & Pxxx_TRX_ID to replace the id generated recently.

    Concerning

    Patrick

  • Is there a way to define a text variable to pick up the last instance on a previous page?

    Hello

    I have a text variable to pick up at once in a document (which is defined with a character style). It's sort of schedule with multiple entries per hour.

    It works very well, however, its pages and pages of text, some of them wearing top of the previous page. For example, a page can start with 08:00 and the header is defined at 08:00, that works. 08:00 until almost the end of the next page, but 3 lines from the bottom is 09:00 in this case, I would still like this page to say at 08:00 and I would like to the next page to tell even if the first instance of the style of time on this page is from 10:00 to 09:00

    Any ideas if this is possible?

    Thank you! Much appreciated!

    Probably not without adding a non-printable tag at 08:00 in the page. ID running header variables are defined to use the page in progress, or look back only if there is no instance on the current page.

  • Creating cloud App does not show the last updated on After Effects

    1. Works on Mac OS X 10.9, German
    2. New CC installed again. German as default language
    3. Applications are displayed in the form of updates, no more than left.
    4. Start after effects CC, he tells me that I am using AE 12.0 CC and that this version is not running.
    5. I go to the download page for Adobe for upgrades http://www.Adobe.com/support/downloads/thankyou.jsp?ftpID=5675 & starts = 5686
    6. There is a newer version of AE

    Why the CC application not shows any upgrade to After Effects, even if it's the only way to run this program on Maverick?

    Hi Mrs. Willi Adelberger,

    Please see the Ko: http://helpx.adobe.com/after-effects/kb/effects-launch-mac-os-109.html.

    Kind regards

    Romit SInha

  • [ADF, JDev 12.1.3] To run a query on the fly is always necessary to define a VO? How to get the Id of the last line inserted in a VO...

    Hallo,

    Sometimes, in the code for my application, I need to run smaller queries to retrieve data from the database.

    I wonder if for these queries, it is necessary to define a View object or if I can avoid this for example creation and execution of a VO on the fly.

    In this case I would not define a VO, given that queries will be never used to display data, but only for the internal logic.

    A use case, I want to solve it next.

    I would like to create a function to be used after validation for last inserted record by a user in a TableVO.

    For example

    Select the Id of the Table where UserId =? and Type =?

    The query should be run in a managed bean...

    public String okButton_action() {}

    OperationBinding operationBinding is BindingsUtils.getBindings () .getOperationBinding ("Commit");.

    Object result = operationBinding.execute ();

    If (! operationBinding.getErrors () .isEmpty ()) {}

    Error handling

    return;

    }

    Here, I need to:

    1. run the query to get the Id of the last inserted record

    2 call the setCurrentRowWithKey on the TableVO to update the display

    and get the Id (identity/auto-increment) than the database

    assigned to the field

    return "return";

    }

    If I can create a function that creates / runs the VO on the fly and return the value ID... It is best to create it in a class of public services or in the implementation class TableVO?

    I need to get the Id of the last line inserted since the ADF is not able to manage MS SQL Server identity fields (it seems that REFRESH AFTER INSERT cannot be used with non - Oracle DB).

    Any notice will be welocome.

    Thank you

    Federico

    The query should be run in a managed bean...

    Much better to execute the query in the template project.

    Example query: http://amit-adf-work.blogspot.com/2013/09/how-to-execute-sql-using-adf-application.html

    If I can create a function that creates / runs the VO on the fly and return the value ID... It is best to create it in a class of public services or in the implementation class TableVO?

    If you have the function that accepts the SQL as a parameter, then this should go to class util.

    Dario

  • Call a procedure only once for the last place of the trigger FOR EACH ROW

    Hello world

    I wonder if someone could help me in the execution of the trigger. My use case what follows:

    -a trigger after each INSERT or UPDATE operation;
    -use FOR EACH ROW algorithm for relaxation;
    -collect certain values inserted/updated fields as: new.uuid and store in a set defined on the layer of the package;
    -only for the last inserted/updated line call a procedure from the global collection with the values collected as a parameter;

    Is it possible to be implemented for the type of the LINE FOR EACH of the trigger? Fact one: new identifier or trigger itself have special attributes such as COUNTY, SIZE to set a size of data inserted or changed to conditional logic? Is there another solution to possible workaround for thoughtful use cases.

    Thank you

    Andrey

    Hi, Andrey,

    I suggest you use 2 triggers:
    (1) A FOR EACH ROW trigger, as you described, to collect relevant data and store it in a temporary table overall or variable poackage. Whenever the trigger is activated, it will overwrite all the data from the previous row.
    (2) AFTER ( NOT FOR EACH ROW) trigger that calls the procedure by using the saved data.

Maybe you are looking for