alter definer='test' view view2 as select id,name from sh_goods;是什么意思
时间: 2023-06-24 14:08:42 浏览: 61
这是一个 MySQL 的 ALTER VIEW 语句,用于更改指定视图的定义者(definer)。
具体来说,该语句将视图 view2 的定义者更改为 test,并且该视图的定义不会发生变化。该视图的定义是从 sh_goods 表中选择 id 和 name 两列。
视图是虚拟表,它不包含实际的数据,而是基于一个或多个表的查询结果集。通过视图,可以简化复杂的查询和重用 SQL 查询语句。
相关问题
alter definer='root' view view2 as -> select id,name from sh_goods; Query OK, 0 rows affected, 1 warning (0.00 sec)什么意思
这是一个 MySQL 数据库的 ALTER VIEW 语句,意思是修改视图 view2 的定义者为 root 用户,并且将该视图的查询语句修改为查询 sh_goods 表的 id 和 name 列。执行该语句成功,但是 MySQL 返回了一个警告,可能是因为该视图的定义者之前不是 root 用户,或者该视图之前已经存在并且被修改了。
sh_view_cate_attr:用于根据商品分类id查找所有属性信息。 商品属性表sh_goods_attr:
根据提供的引用内容,可以创建一个名为sh_view_cate_attr的视图,用于根据商品分类id查找所有属性信息。具体步骤如下:
1. 首先,需要在sh_goods_attr表中添加一个外键,将其与sh_goods_category表中的id列关联起来,以便在查询时能够根据商品分类id查找所有属性信息。可以使用以下SQL语句添加外键:
```sql
ALTER TABLE sh_goods_attr ADD CONSTRAINT fk_goods_category_id FOREIGN KEY (category_id) REFERENCES sh_goods_category(id);
```
2. 接下来,可以创建一个名为sh_view_cate_attr的视图,用于根据商品分类id查找所有属性信息。可以使用以下SQL语句创建视图:
```sql
CREATE VIEW sh_view_cate_attr AS
SELECT g.id AS goods_id, g.name AS goods_name, c.id AS category_id, c.name AS category_name, a.id AS attr_id, a.name AS attr_name, a.value AS attr_value
FROM sh_goods g
JOIN sh_goods_category c ON g.category_id = c.id
JOIN sh_goods_attr a ON a.category_id = c.id
WHERE c.id = <商品分类id>;
```
其中,<商品分类id>需要替换为实际的商品分类id。
3. 最后,可以查询sh_view_cate_attr视图,以查找指定商品分类id的所有属性信息。可以使用以下SQL语句查询:
```sql
SELECT * FROM sh_view_cate_attr; ```