刚刚部署docker里的redis-stack的时候发现启动不起来,查来查去发现是环境变量的问题,以前我的环境变量是这么写的
`REDIS_ARGS=”–requirepass redis密码”`
但这样就会导致标题上的错误,需要把引号去掉
`REDIS_ARGS=–requirepass redis密码`
刚刚部署docker里的redis-stack的时候发现启动不起来,查来查去发现是环境变量的问题,以前我的环境变量是这么写的
`REDIS_ARGS=”–requirepass redis密码”`
但这样就会导致标题上的错误,需要把引号去掉
`REDIS_ARGS=–requirepass redis密码`
获取建表语句:
show create table `表名`
获取自定义函数创建语句:
show create function `函数名`
获取存储过程创建语句:
show create procedure `函数名`
索引没有现成的语句可以返回创建语句,不过可以获取到索引的详细内容:
show index from `表名`
mysql中update的基础用法是update 表 set 列1=?,列2=?,... where 筛选条件
,这样的语句一次只可以对符合条件的所有行更新相同的数据,但update语句还可以join其它的表,从别的表读取数据更新到对应的行上,这样就可以实现对不同的行更新不同的数据,如下:
update 表名 as t1 inner join 表2 as t2 #也可以left join 或 right join 或 join,这里的join和select里面那个join用法是一样的 on t1.id列名=t2.id列名 set t1.列1 = t2.列1, t1.列2 = t2.列2
虽然上面的方法能实现标题的要求,但总不能先把数据插入一个表再这样update吧,于是我想了一会儿,想到如果要提交多组数据肯定要把数据结构化,如果要提交结构化数据那肯定是要用json,mysql 的json函数里有一个`JSON_TABLE`函数可以用来把一个json转换成一个表类型,那么这个方法就好实现了,只要把上面的表2替换成用JSON_TABLE生成的表,就可以通过直接向mysql提供一个json来对不同的行更新不同的数据了,如下:
update 表名 as t1 inner join JSON_TABLE( ?, '$[*]' COLUMNS ( #把json作为一个数组遍历,提取每个子数组作为数据源 id列名 BIGINT PATH '$[0]', #提取子数组第一个元素,取名为"id列名",类型是BIGINT,建议取名为目标表中的id列名,这样方便用using 列1 INT PATH '$[1]', #提取子数组第二个元素,取名为"列1",类型是INT 列2 VARCHAR PATH '$[2]' #提取子数组第三个元素,取名为"列2",类型是VARCHAR ) ) as t2 using(id列名) #这个using是前一个例子中on语法的一种简写,用法参考官方文档 set t1.列1 = t2.列1, t1.列2 = t2.列2;
在 ? 的位置填入一个json字符串或者prepare这个语句后提交一个json字符串,就可以啦。json字符串示例如下:
[ [1,20,"张三"], [2,24,"李四"], [3,18,"王五"], [4,23,"赵六"], [5,55,"小二"], [6,60,"poi"] ]
这样每个子数组中的第一个项目被提取为”id列名”,第二个为”列1″,第三个为”列2″(都是在上面的sql里的JSON_TABLE里取的名字),对应的值在set语句里被赋值到对应的行上,功能就完成啦。
适用于由git安装的扩展,把这个bat文件放在stable-diffusion-webui的目录下,然后执行即可更新所有扩展。(需要电脑上安装有git)
和webui本身自带的更新功能相比,这个脚本的优点是所有扩展是并行更新的,比webui那种一个个的更新快到不知道哪去了。
注1:更新扩展前请先关闭webui。
注2:并不建议没事去更新插件和webui本体,因为这些项目的更新和合并都很随便,并没有严格的兼容性测试和问题测试,所以有一定的概率更新完就不能正常启动了。