Копирование строк MySQL Blob - в другие строки с другим именем пользователя - PullRequest
0 голосов
/ 05 февраля 2012

ОК - я обновился с Horde Webmail 3 до Horde Webmail 4.

В этом переходе таблица 'horde_prefs' теперь показывает, что поле 'pref_value' имеет тип BLOB. Ранее это был тип LONGTEXT.

При настройке новых учетных записей я хочу дать всем пользователям настройки по умолчанию до того, как пользователь войдет в систему, чтобы убедиться, что все они имеют правильные настройки по умолчанию.

Раньше я просто создавал скрипт PHP со всеми значениями по умолчанию в виде записей SQL - и вставлял их с именем пользователя. Теперь, поскольку это записи BLOB, я не могу этого сделать.

Итак, по сути, таблица имеет четыре поля:

pref_uid (имя пользователя) pref_scope (приложение, для которого установлено предпочтение - например, horde, ingo, imp и т. д.) pref_name (имя предпочтения - например, last_login, last_maintenance и т. д.) pref_value (BLOB-запись, которая содержит фактическое предпочтение)

Итак - может быть более 20 строк для одной учетной записи пользователя и всех настроек.

Я хотел бы скопировать все строки от одного пользователя (скажем, tester@test.com), чтобы сделать настройки по умолчанию для нового пользователя (скажем, newuser@test.com)

Есть ли способ, которым это можно сделать?

Спасибо!

1 Ответ

0 голосов
/ 06 февраля 2012

Это возможно следующим образом:

insert into horde_prefs(pref_uid, pref_scope, pref_name, pref_value)
select 'newuser@test.com', pref_scope, pref_name, pref_value
from horde_prefs
where pref_uid='tester@test.com'

вставка в .. select .. работает также с BLOB-объектами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...