フィールドUSER_ID
にプライマリキーを持つテーブルUSER
があるとします。また、db内のすべてのテーブルには、実際のユーザーのIDがMODIFIED_BY
のフィールドが含まれている必要があります。私の目的は、適切な名前のuserのidと等しいフィールドのデフォルト値を指定することです。 F.Y.あなたには名前system
のユーザーがいて、すべてのテーブルのすべてのレコードにMODIFIED_BY
フィールドにこのユーザーのIDが必要です。同様に、すべての新しいレコードがこれを満たすことを望みます。MySQL:別のテーブルカラムのカラムのデフォルト値
0
A
答えて
2
データベースユーザー以外のユーザー(「登録ユーザー」など)を指していると仮定すると、おそらくトリガーが問題の解決方法です。挿入時に起動するトリガーと更新時に起動する2つのトリガーで、カスタムコードを使用してmodified_at
列の値を指定できます。 select user_id from ... where ...
質問に直接答える必要がある次のサンプルコードを確認してください。あなたの問題を解決することを願っています。それ以外の場合は、より多くの情報を提供してください。
DELIMITER |
drop table if exists sometable
|
CREATE TABLE `sometable` (
`somecolumn` int(11) DEFAULT NULL,
`modified_by` int(11) DEFAULT NULL
)
|
drop table if exists registered_user
|
CREATE TABLE registered_user (
user_id integer primary key,
name varchar(50)
)
|
drop trigger if exists sometable_inserted
|
drop trigger if exists sometable_modified
|
CREATE TRIGGER sometable_inserted BEFORE INSERT ON sometable
FOR EACH ROW
BEGIN
SET new.modified_by := (select user_id from registered_user where [email protected]);
END;
|
CREATE TRIGGER sometable_modified BEFORE UPDATE ON sometable
FOR EACH ROW
BEGIN
SET new.modified_by := (select user_id from registered_user where [email protected]);
END;
|
DELIMITER ;
insert into registered_user values (5, 'joe');
insert into registered_user values (6, 'sam');
set @name='sam';
insert into sometable(somecolumn) values (1);
insert into sometable(somecolumn) values (2);
set @name='joe';
update sometable set somecolumn = 3 where somecolumn = 2;
+0
はい、これは私が必要とするものです!どうもありがとう! – antongarakh
+0
あなたは大歓迎です。それがあなたの問題を解決したならば、答えを「受け入れられた」とマークすることが大切です。 –
関連する問題
- 1. テーブルカラムのようなDivカラム
- 2. PostgreSQLカラム名を別のテーブルカラムに変更する
- 3. mysql:カラム値を別のテーブルのカラムの値に置き換えます。
- 4. デフォルト値のPhinx migrate - enumカラム
- 5. WPF Datagridカラムのデフォルト値
- 6. mysql:挿入するカラムのデフォルト値を設定する
- 7. MySQL - カラムのデフォルト値を取得できますか?
- 8. デフォルトで1のMySQL Alterテーブル追加カラム
- 9. MySQLの列のデフォルト値は、別のテーブルの主キーのデフォルト値は
- 10. mysqlのデフォルト値?
- 11. mysqlのデフォルト値
- 12. MYSQL別のテーブルの値を1つのカラムに挿入する
- 13. 22%のデクリメントmysqlカラム値
- 14. mysql、カラムBのデフォルト値としてカラム "id"(自動インクリメント)の値を設定する
- 15. 別のカラムに対するmysqlのインクリメント
- 16. カラムのデフォルト値を調べる(Oracle)
- 17. mysqlは別のテーブルのあるカラムを別のカラムに更新します
- 18. MySQLは、カラム名、値
- 19. 別のテーブルのあるカラムから別のカラムのデータを別のカラムの値にコピー
- 20. Mysqlのタイムスタンプのデフォルト値
- 21. カラム値を別のカラム値で更新するIN SQL
- 22. MySQLテーブルの定数カラムの値
- 23. mysql SQL実行中にカラムのデフォルト値を設定する方法
- 24. カラムは、「赤」「APPLE」は、別の列の値=
- 25. mysqlでテーブルを作成して1つのカラムを別の2つのカラムの合計値にする
- 26. カラムを別のカラムの値で更新する+テキスト
- 27. 複数の値を持つMySQLカラム
- 28. カラム名としてのMySQLハッシュ値
- 29. SSDTの "スマート・デフォルト"値タイプ別
- 30. csvファイルのカラム値とmysqlテーブルのカラム値を比較する方法
'USER()'が必要です。 –
何を意味するのか理解していません – antongarakh
すべてのユーザーはデータベースに独自のログインを持っていますか?または、接続文字列に単一のIDを使用し、アプリケーションユーザーの資格情報を含む「ユーザー」テーブルを使用していますか?または、他の何か? – xQbert