2016-01-11 3 views
0

Я хочу создать скрипт для заполнения базы данных для тестирования. Как установить строку, которая будет хеширована, и вставлена ​​в базу данных?MySQL SHA256 с инструкцией вставки

у меня есть:

INSERT INTO `loop`.`User` 
(`userID`, 
`firstName`, 
`lastName`, 
`email`, 
`password`, 
`userName`, 
`bio`, 
`spamCount`) 
VALUES 
('gZvTtlPtjGRqeMBaLji3HxoKB5EZCsNL', 
'Joe', 
'Smith', 
'[email protected]', 
SHA2('testgZvTtlPtjGRqeMBaLji3HxoKB5EZCsNL', 256), 
'[email protected]', 
"TEST BIO", 
0); 

Как хэш строки и вставить в одном операторе?

+0

какая ошибка поживаешь? – davejal

ответ

8

Вы можете вставить SELECT вместо VALUES запустить функцию на одном из входов:

INSERT INTO `loop`.`User` 
(`userID`, 
`firstName`, 
`lastName`, 
`email`, 
`password`, 
`userName`, 
`bio`, 
`spamCount`) 
SELECT 
'gZvTtlPtjGRqeMBaLji3HxoKB5EZCsNL', 
'Joe', 
'Smith', 
'[email protected]', 
SHA2('testgZvTtlPtjGRqeMBaLji3HxoKB5EZCsNL', 256), 
'[email protected]', 
"TEST BIO", 
0; 
+0

Не могли бы вы объяснить это немного больше? Я хочу понять. –

+2

Когда вы вставляете 'VALUES', они должны быть прямо вверх (строки, целые числа и т. Д.), А не функции или подзапросы, которые разрешают значения. Однако при использовании оператора 'SELECT' одно не ограничено таким образом. – wogsland

+0

Спасибо, что имеет смысл! –

Смежные вопросы