У меня есть эта таблица:
CREATE TABLE `new_random` (
`i_domain` varchar(500) DEFAULT NULL,
`i_domain_no_http` varchar(500) DEFAULT NULL,
UNIQUE KEY `i_domain_UNIQUE` (`i_domain`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
Я создал поле i_domain_no_http
, используя alter table. Это новый столбец (без значения, там изначально задано значение NULL), куда я хочу вставить точные значения i_domain
, но после их изменения и удаления префикса http://
. /
Я сделал запрос:
insert into `myscheme`.`new_random` (`new_random`.`i_domain_no_http`)
select substring_index(`new_random`.`i_domain`,'http://',-1)
from `myscheme`.`new_random`;
Пример, таблица должна выглядеть так:
i_domain | i_domain_no_http
------------------------------------
http://11.com | 11.com
https://22.com | 22.com
Но я получаю эту ошибку:
i_domain | i_domain_no_http
------------------------------------
http://11.com |
https://22.com |
NULL | 11.com
NULL | 22.com
'i_domain' должен быть первичным ключом, а не NULL, но мне пришлось удалить NN
и PK
, чтобы избежать ошибки:
Error Code: 1364. Field 'i_domain' doesn't have a default value
В чем проблема? Как это решить?