1) Теперь у меня есть 50 существующих записей без кафедры. Тем не менее, я должен вручную добавить это значение? Какова лучшая практика? Для 50 записей это возможно, но для 2000 записей и более?
Это зависит. Вы можете создать новый отдел для «неназначенных» и назначить их всех на это; Вы можете отправить электронную таблицу в HR со словами «у следующих сотрудников нет назначенного отдела; в каком отделе они находятся? ps; не удаляйте столбец EmployeeID из листа, прежде чем отправить его обратно; мне нужно это обновить БД ". Это очень бизнес-контекстный вопрос, а не технический. С X тысячами записей легко работать. Потребуется немного времени, чтобы разобраться, если вы (или кто-то еще) делаете это вручную. Эта информация, вероятно, будет доступна где-то еще; Вы могли бы, возможно, разослать список всем руководителям отделов, в котором говорилось бы: "Кто-нибудь из этих парней ваш? Пожалуйста, удалите из этой таблицы все имена, которых у вас нет в команде, и отправьте мне обратно" , затем обновите базу данных в зависимости от того, что вы получите обратно
Поскольку это однократная операция, вам не нужно ничего особенно для этого - вы можете просто вернуть свой лист Excel и поместить в пустой столбец:
="UPDATE emp SET departmentID = 5 WHERE id = " & A1
И заполните его, чтобы сгенерировать кучу операторов обновления, скопируйте текст в инструмент запросов и нажмите «Перейти»; не нужно все загружать листом в таблицу, делать обновления и т. д. c - просто хакерский стиль объединяет что-то в excel, которое напишет для вас SQL, скопируйте / вставьте / запустите. Если HR вернул лист со списком названий отделов, тогда поместите название отдела и идентификатор где-нибудь еще на листе и используйте VLOOKUP или XLOOKUP , чтобы превратить название в отдел число, а затем составьте SQL на основе этого
2), когда я добавляю столбец DepartmentId, я устанавливаю для этого столбца нулевые значения (верно?), но в качестве внешнего ключа я не Я не хочу разрешать нулевые значения. Могу ли я изменить это или как я могу это обработать?
Столбцы с внешним ключом могут иметь значения NULL - это не FK, который накладывает ограничение "Нет пустых значений", это обнуляемость столбец (измените столбец на departmantid INT NOT NULL
), который налагает это. FK ссылается на первичный ключ, и первичный ключ может не иметь значение null (или в некоторых БД не более одной записи может иметь [частично] нулевой PK), но вы можете просто оставить эти отделы пустыми. Если вы измените столбец, чтобы он не был нулевым, вам нужно сначала исправить значения NULL, иначе изменение не удастся