CREATE TABLE customers
(
first_name character varying(15),
second_name character varying(20),
login character varying(15) NOT NULL,
password character varying(15),
email character varying(40),
gender gender,
register_date date,
date_of_birth date,
address character varying(40),
address_number integer,
town character varying(20),
CONSTRAINT login PRIMARY KEY (login)
)
У меня есть эта таблица, и я создал перечисление гендера, таких как:Java перечисление и PostgreSQL перечисление
CREATE TYPE gender AS ENUM ('F', 'M',);
Я пытаюсь вставить данные клиентов из затмения Java с PreparedStatement но есть ошибка, такая как ОШИБКА: столбец «пол» относится к типу пола, но выражение имеет характерный тип, изменяющийся Подсказка: вам нужно будет переписать или передать выражение.
Мой Java код выглядит следующим образом:
PreparedStatement pre_state;
public enum gendertype {
F,
M;
}
pre_state = conn.prepareStatement("INSERT INTO"
+ " customers VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)");
pre_state.set(6, gendertype.F.toString());
Это, вероятно, вставка его как 'F ':: text', что вызовет ошибку. –
ok Я нашел в качестве решения, и он работает – user2317288
pre_state = main.conne.conn.prepareStatement ("вставить в ценности клиентов (?,?,?,?,?,? :: gender,?,?,?,?,?) "); – user2317288