

Что не верно?
Добавьте новый товар в таблицу Goods с именем «Table» и типом «equipment».
В качестве первичного ключа (good_id) укажите количество записей в таблице + 1.
INSERT INTO Goods (good_id, good_name, type)
VALUES ((SELECT COUNT(*) FROM Goods) + 1, 'Table', 'equipment');
пишет что не правильно
Выдает
ER_UPDATE_TABLE_USED: You can't specify target table 'Goods' for update in FROM clause

Это не ошибка, это ограничение MySQL, описанное в официальной документации (раздел 13.2.15.12 Restrictions on Subqueries):
В MySQL нельзя изменять данные и одновременно делать выборку из той же таблицы в подзапросе. Рекомендуется использовать вложенный подзапрос:
INSERT INTO Goods (good_id, good_name, type) VALUES ((SELECT * FROM (SELECT COUNT(*) FROM Goods) AS t) + 1, 'Table', 'equipment');
INSERT INTO Goods
SET good_id = (SELECT COUNT(*)+1 FROM Goods AS a),
good_name = 'Table',
type = (SELECT good_type_id FROM GoodTypes WHERE good_type_name='equipment')
Решение:
INSERT INTO Goods (good_id, good_name, type)
VALUE ((SELECT COUNT(*)+1 FROM Goods AS a),
'Table',
(SELECT good_type_id FROM GoodTypes AS b WHERE good_type_name ='equipment'));
SELECT * FROM Goods
Наверное, от вас хотят, чтобы вы сами узнали число записей в таблице и вписали его в запрос числом.
Есть еще одна проблема: в Goods поле type имеет тип int.
Поэтому вы не можете вписать в него строку 'equipment'.
Вместо этого вам нужно сперва завести строчку в GoodTypes и туда вписать айдишник и наименование. А уже потом добавлять в Goods строчку с type, равным айдишнику добавленного вами GoodType.