在mariaDb命令shell中,如何将@var(例如@var)的用户变量插入后续命令中? 到目前为止
,例如,如何使用用户变量@VAR将预用的密码提供给
SELECT @var;
(使用auth_ed25519
MariadB插件)?
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的某些地方用作表达式,而不是一般的替代。
要在其他地方使用它们,您可以将它们连接到字符串中,并将它们作为准备的语句执行。因为您只需要一次执行此操作,因此即时执行是简单的。
?