У меня мало сомнений в MySQL. При загрузке данных из одной таблицы в другую, я столкнулся один вопросОбработка динамических пропущенных столбцов в MySQL
первой таблице: эми
id | name | sal | deptno | loc | referby
1 | abc | 100 | 10 | hyd | xyz
2 | mnc | 200 | 20 |chen | pqr
второй стол: emprefers
id | name | sal | deptno | loc | referby
Теперь я хочу, чтобы загрузить emp
таблицы данных в emprefers
стол. Я написал запрос, как
insert into emprefers select * from emp after
Я побежал запрос, данные загружались в emprefers
таблицу, как показано ниже:
id | name | sal |deptno | loc |referby
1 | abc | 100 | 10 | hyd | xyz
2 | mnc | 200 | 20 | chen | pqr
Теперь я побежал тот же запрос во второй раз. Он потерпел неудачу. Причина в том, что столбец имен удаляется из таблицы emp
.
Я редактировал вопрос как:
insert into emprefers select id,'null'as name,sal,deptno,loc,referby from emp
После того как я побежал снова отредактированный запрос, теперь записи загружаются в emprefers
таблицы и данные выглядит следующим образом:
id | name | sal |deptno | loc |referby
1 | null | 100 |10 | hyd | xyz
2 | null | 200 |20 |chen | pqr
Каждый раз перед загрузкой таблицу emprefers
I усекаю данные таблицы emprefers
. И таблица emprefers
никогда не менялась.
Опять же, в третий раз я снова запустил тот же запрос. Запрос не удался, причина заключалась в том, что в таблице emp
отсутствовали столбцы sal
и deptno
.
Я не хочу снова редактировать запрос, причина в том, что мы не знаем, какие столбцы/удалены из таблицы emp
. На этот раз мы хотим решить проблему.
Мы хотим загрузить данные во вторую таблицу, если столбцы доступны в таблице emp
, затем загрузите данные - в противном случае нам необходимо передать null
или пустые значения для этих столбцов.
Пожалуйста, расскажите, как написать запрос, чтобы проверить, существует ли столбец или нет, и если он существует для извлечения того же столбца, в противном случае назначьте значения null
для этого столбца.
Какова актуальность mysqli? MySQL-верстак? и mysql-error-1064? –