Изменить значение в mysql workbench [duplicate]

Строка ошибки «Ссылка на объект, не установленная на экземпляр объекта.» указывает, что вы не назначили экземпляр объекта объектной ссылке, и все же вы получаете доступ к свойствам / методам этого объекта.

например: скажем, у вас есть класс под названием myClass и он содержит одно свойство prop1.

public Class myClass
{
   public int prop1 {get;set;}
}

Теперь вы получаете доступ к этому prop1 в каком-то другом классе, как показано ниже:

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref.prop1 = 1;  //This line throws error
     }
}

выше строки выдает ошибку, потому что ссылка класса myClass объявлена, но не создана, или экземпляр объекта не назначается referecne этого класса.

Чтобы исправить это, вам нужно создать экземпляр (присвоить объект ссылке на этот класс).

public class Demo
{
     public void testMethod()
     {
        myClass ref = null;
        ref = new myClass();
        ref.prop1 = 1;  
     }
}
48
задан Andy 27 January 2011 в 23:23
поделиться

10 ответов

sqldump в текстовый файл, найти / заменить, повторно импортировать sqldump.

Дамп базы данных в текстовый файл mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql

Восстановить базу данных после того, как вы сделали изменения к нему. mysql -u root -p[root_password] [database_name] < dumpfilename.sql

115
ответ дан joshhunt 26 August 2018 в 00:27
поделиться

Простое решение

UPDATE `table_name`
 SET `field_name` = replace(same_field_name, 'unwanted_text', 'wanted_text')
2
ответ дан Jaha Rabari 26 August 2018 в 00:27
поделиться

Это невозможно - вам нужно выполнить ОБНОВЛЕНИЕ для каждой таблицы отдельно.

ПРЕДУПРЕЖДЕНИЕ: ДУБИО, НО ЭТО РАБОТАЕТ (ВЕРОЯТНО) РЕШЕНИЕ СЛЕДУЕТ

Альтернативно , вы можете сбросить базу данных через mysqldump и просто выполнить поиск / замену в результирующем файле SQL. (Я бы рекомендовал отключить все, что может касаться базы данных, пока это выполняется, а также использовать флаги -add-drop-table и -extended-insert.) Однако вам нужно быть уверенным, что поиск / замена текста не изменит ничего, кроме самих данных (т. е. что текст, который вы собираетесь менять, может не произойти как часть синтаксиса SQL), и я действительно попытаюсь сделать повторную вставку сначала пустую тестовую базу.)

2
ответ дан John Parker 26 August 2018 в 00:27
поделиться

Короткий ответ: вы не можете.

Длинный ответ: вы можете использовать INFORMATION_SCHEMA , чтобы получить определения таблиц и использовать его для генерации необходимых операторов UPDATE динамически. Например, вы можете начать с этого:

SELECT TABLE_NAME, COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'your_schema'

Я постараюсь избежать этого, хотя если возможно.

4
ответ дан Mark Byers 26 August 2018 в 00:27
поделиться

Я просто хотел поделиться тем, как я это нашел / заменил вещь с помощью базы данных sql, потому что мне нужно было заменить ссылки из файла sessionbuddy из файла Chrome.

  • Итак, я экспортировал файл базы данных sql as. txt с помощью SQLite Database Browser 2.0 b1
  • Найти / заменить в блокноте ++
  • Импортировал файл .txt обратно в SQLite Database Browser 2.0 b1
0
ответ дан Rudolph 26 August 2018 в 00:27
поделиться

Если вы находитесь в phpMyAdmin, и у вас есть только минимальное изменение, вы можете сделать это простым способом.

  • Войдите в свой phpMyAdmin
  • Выберите базу данных, которую вы необходимо выполнить изменения
  • Нажмите на опцию поиска

Вы всегда можете выбрать либо все таблицы, либо любые. Не забудьте указать ключевое слово поиска, оно будет использоваться в качестве подстановочного знака (%).

  • Теперь нажмите «Go».
  • Это даст вам все таблицы, в которых есть элемент вы искали.

  • Теперь вы можете открывать каждую таблицу по очереди и выполнять обновление. Образец запроса сгенерирован может выглядеть следующим образом. SELECT * FROM sibeecst_passion. wp_ewwwio_images WHERE (CONVERT (id ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (path ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (image_md5 ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (results ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (gallery ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (image_size ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee% 'ИЛИ CONVERT (orig_size ИСПОЛЬЗОВАНИЕ utf8) LIKE'% sibee% 'ИЛИ CONVERT (updates ИСПОЛЬЗОВАНИЕ utf8) LIKE'% sibee% 'ИЛИ CONVERT (updated ИСПОЛЬЗОВАНИЕ utf8) LIKE'% sibee% 'ИЛИ CONVERT (trace ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (attachment_id ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (resize ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (converted ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (level ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (pending ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee%' ИЛИ ​​CONVERT (backup ИСПОЛЬЗОВАНИЕ utf8) LIKE '% sibee% ')
30
ответ дан Sibeesh Venu 26 August 2018 в 00:27
поделиться

Это сильно означает, что ваши данные НЕ НОРМАЛИЗИРОВАНЫ для начала. Вы действительно должны это исправить.

Somteh = такая вещь должна работать (NB вы не упомянули о том, что используете какие-либо другие языки, поэтому ее записывали как хранимую процедуру MySQL)

 create procedure replace_all(find varchar(255), 
        replce varchar(255), 
        indb varcv=char(255))
 DECLARE loopdone INTEGER DEFAULT 0;
 DECLARE currtable varchar(100);
 DECLARE alltables CURSOR FOR SELECT t.tablename, c.column_name 
    FROM information_schema.tables t,
    information_schema.columns c
    WHERE t.table_schema=indb
    AND c.table_schema=indb
    AND t.table_name=c.table_name;

 DECLARE CONTINUE HANDLER FOR NOT FOUND
     SET loopdone = 1;

 OPEN alltables;

 tableloop: LOOP
    FETCH alltables INTO currtable, currcol; 
    IF (loopdone>0) THEN LEAVE LOOP;
    END IF;
         SET stmt=CONCAT('UPDATE ', 
                  indb, '.', currtable, ' SET ',
                  currcol, ' = word_sub(\'', find, 
                  '\','\'', replce, '\') WHERE ',
                  currcol, ' LIKE \'%', find, '%\'');
         PREPARE s1 FROM stmt;
         EXECUTE s1;
         DEALLOCATE PREPARE s1;
     END LOOP;
 END //

Я оставлю это вам, чтобы выяснить, как объявить функцию word_sub - я сделал достаточно свободного программирования здесь.

6
ответ дан symcbean 26 August 2018 в 00:27
поделиться

БУДЬТЕ ОСТОРОЖНЫ, при замене командой REPLACE!

почему?

, потому что есть большая вероятность, что ваша база данных содержит сериализованные данные (особенно таблицу wp_options), поэтому использование «замены» может привести к поломке данных.

Использовать рекомендуемую сериализацию: https : //www.protectpages.com/tools/WordpressMigrator

1
ответ дан T.Todua 26 August 2018 в 00:27
поделиться

MySQL Search & amp; Заменить инструмент

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

2
ответ дан user1794295 26 August 2018 в 00:27
поделиться

Другой вариант (в зависимости от варианта использования) заключается в использовании продуктов DataMystic TextPipe и DataPipe . Я использовал их в прошлом, и они отлично поработали в сложных сценариях замены и без необходимости экспортировать данные из базы данных для поиска и замены.

0
ответ дан Ville 26 August 2018 в 00:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: