Я предполагаю, что вы говорите об Oracle, поскольку вы пометили его как Oracle.Вы также пометили вопрос как MySQL, где подход будет другим.
Вы можете сделать столбец USER_ID
первичным ключом
ALTER TABLE <<table_name>>
ADD CONSTRAINT pk_user_id PRIMARY KEY( user_id );
Если вы хотите, чтобы значение увеличивалось автоматически, вынужно создать последовательность
CREATE SEQUENCE user_id_seq
START WITH 1
INCREMENT BY 1
CACHE 20;
, а затем создать триггер на таблице, которая использует последовательность
CREATE OR REPLACE TRIGGER trg_assign_user_id
BEFORE INSERT ON <<table name>>
FOR EACH ROW
BEGIN
:new.user_id := user_id_seq.nextval;
END;
Что касается вашего второго вопроса, я не уверен, что яПонимаю.Если вы обновите строку, а затем подтвердите это изменение, все последующие запросы будут считывать обновленные данные (за исключением исключительно маловероятных случаев, когда вы установили сериализуемый уровень изоляции транзакции и у вас есть транзакции, которые выполняются в течение нескольких часов, и вы ''выполняется запрос в этой транзакции).Вам не нужно ничего делать, чтобы увидеть текущие данные.