##ご挨拶
御覧頂きありがとうございます。1時間くらいはまっています。もし、お分かりの方いらっしゃったら、お願いします。
私が試した方法以外でDB側だけで完結するスマートなやり方があれば、ご教授頂ければ嬉しいです。
##環境
mysql Ver 15.1 Distrib 10.1.36-MariaDB, for Win32
XAMPPです。
##やりたい事
- DB側だけで、引数_users、引数_productsなどの名前でテーブルを、いつでも、一行で作りたい
##やってみた事
- 引数を受け、文字列連結し、変数にセットし、テーブル名とするストアドプロシージャを定義しようとした。
sql
1DELIMITER // 2 3CREATE PROCEDURE create_office(IN officeid CHAR(3)) 4BEGIN 5 set @acu_val = CONCAT(officeid,'_accounts'); 6 /*create table officeid_accounts 7で引数を直接おいて試したところ、 8 officeid_accounts 9というテーブルになってしまいCONCATを使ってみてます。*/ 10 create table @acu_val( 11 id char(7) primary key, 12 users_accounts_id int, 13 name varchar(40) not null, 14 name_kana varchar (100) not null, 15 balance int default '0' not null, 16 created_at datetime not null default current_timestamp, 17 updated_at timestamp not null default current_timestamp on update current_timestamp, 18 unique index(users_accounts_id) 19 ); 20END; 21 22//
##結果
result
1ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '@acu_val( 2 id char(7) primary key, 3 users_accounts_id int, 4 name varch' at line 4
##お願いいたします
エラー原因の指摘、もっとスマートなやり方、皆さまのご意見、ご教授よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。