2017-09-18 11 views
0

私は2つのテーブルを持っているがmysqlのストアドプロシージャを使用してパラメータを出力する方法は?

TABLE1を言う:

create table Person(
    Id int primary key auto_increment, 
    name varchar(20), 
    Gender char(1) 
); 

表2:

create table Details(
    Age int, 
    Phone int(10) primary key, 
    Address varchar(100) 
    Id foreign key(Id) references Person(Id), 
    Name foreign key(Name) references Person(Name) 
); 

私は、テーブルにデータを挿入するストアドプロシージャを作成する必要があります: '詳細'

create procedure usp_insert(
    IN Name varchar(100), 
    IN Age int, 
    IN Phone int(10), 
    IN Address varchar(100), 
    OUT Id int 
) 
begin 

//want to output the Id as QW001 on inserting the data into the Details table. 

insert into Details(Name,Age,Phone,Address) values(name,age,phone,address) 
end 

私は以下の形式でIDを「QW001」の形式で達成できますか? tputパラメータ。 私はこれに新しいので、誰かが上記のストアドプロシージャを修正する際に助けてくれますか?どんな助けもありがとうございます。 TYIA!あなたはこのようにLAST_INSERT_ID()を使用する必要が

+0

MySQLの自動インクリメント列は整数のみです。 https://stackoverflow.com/questions/23331194/concatenating-a-string-and-primary-key-id-while-inserting/23331246#23331246 –

答えて

0

create procedure usp_insert(
    IN Name varchar(100), 
    IN Age int, 
    IN Phone int(10), 
    IN Address varchar(100), 
    OUT Id int 
) 
begin 

insert into Details(Name,Age,Phone,Address) values(name,age,phone,address); 
set Id =CONCAT("QW00", LAST_INSERT_ID()) AS ConcatenatedString; 
end 
+0

を参照してください。しかし、私はIDが次の形式 'QW001'であることを望んでいました。 – Kenz

+0

私が連結するか、何か他の方法がありますか? – Kenz

+0

mysqlのCONCAT()関数を使用することができます – colapiombo

関連する問題