mariaDb命令shell中,如何将@var(例如@var)的用户变量插入后续命令中? 到目前为止 ,例如,如何使用用户变量@VAR将预用的密码提供给
SELECT @var;
(使用auth_ed25519MariadB插件)?
CREATE USER
我使用INSTALL SONAME 'auth_ed25519'; # one time
...
set @hash = 'ZIgUREUg5PVgQ6LskhXmO+eZLS0nC8be6HPjYWR4YJY'; # OK
CREATE OR REPLACE USER username@hostname IDENTIFIED VIA ed25519 USING @hash;
-->You have an error in your SQL syntax
而不是仅仅(@hash)
@hash
来获得相同的错误。 使用
'@hash'
我得到“密码哈希应该是43个字符长” 因此,这可能会提供文字字符串“ @hash”而无需插值。同上与
"@hash"
@variables如何工作?提前感谢您的任何建议。 addendum:我尝试使用
PREPARE
和
EXECUTE
实例化字符串值,但无法获得第一垒:
PREPARE stmt FROM 'CREATE OR REPLACE USER username@hostname IDENTIFIED VIA ed25519 USING ?';
-->You have an error in your SQL syntax
(文档明确地说,即使预期字符串值也不应在引号中,所以我也很困惑...)
使用者变量只能在SQL的某些地方用作表达式,而不是一般的替代。 要在其他地方使用它们,您可以将它们连接到字符串中,并将它们作为准备的语句执行。因为您只需要一次执行此操作,因此即时
执行是简单的。
?
注意双引号是一个逃脱的单报价。