Mysql 插入视图时的默认值
我有以下观点[加拿大用户]:Mysql 插入视图时的默认值,mysql,views,Mysql,Views,我有以下观点[加拿大用户]: SELECT id, name, email FROM users WHERE country_id = 3; 它可以很好地用于选择数据。我想知道的是,如何使插入视图的数据默认为country\u id=3 例如,当我现在插入视图时,country\u id为NULL INSERT INTO canadian_users (name, email) VALUES ("bob", "foo@bar.com"); => name: bob email:
SELECT id, name, email
FROM users
WHERE country_id = 3;
它可以很好地用于选择数据。我想知道的是,如何使插入视图的数据默认为country\u id=3
例如,当我现在插入视图时,country\u id
为NULL
INSERT INTO canadian_users (name, email) VALUES ("bob", "foo@bar.com");
=>
name: bob
email: foo@bar.com
country_id: NULL
有没有办法让country\u id
默认为3
INSERT INTO canadian_users (name, email) VALUES ("bob", "foo@bar.com");
=>
name: bob
email: foo@bar.com
country_id: 3
我不想在users
表中将列的默认值设置为3。也会有类似的观点
另外,我的整个情况被删节成了一个简洁的问题。是的,视图是必需的,而且我不可能在我的
INSERT
语句中实际设置country\u id
。我认为这是不可能的。我能想到的唯一替代方法是调用存储过程/函数,而不是INSERT
语句。比如:
CREATE PROCEDURE insert_canadian_user( name VARCHAR(20), email VARCHAR(20) )
BEGIN
INSERT INTO users
VALUE (name, email, country_id);
END
但是,我很难相信您不能将
国家id
添加到您的插入声明中。我设想您的应用程序有一个例程,基本上选择要访问的视图,大概是基于用户的国家(例如,用户登录时)。然后你可以将相应的国家id
存储在一起。我刚刚在某处发现了另一个类似的问题