Ошибка: у вас есть ошибка с вашим синтаксисом sql, проверьте правильность синтаксиса в руководстве, которое соответствует вашей MariaDB - PullRequest
1 голос
/ 21 января 2020

У меня есть программа java, которая создает новую базу данных, а затем создает в ней таблицу. Но когда я запускаю программу, она говорит, что у меня есть ошибка в моем синтаксисе SQL, подобном этому

com. mysql .jdb c .exceptions.jdbc4.MySQLSyntaxErrorException: у вас есть ошибка в вашем SQL синтаксисе; обратитесь к руководству, соответствующему вашей версии сервера MariaDB, чтобы узнать правильный синтаксис для использования рядом с 'CREATE TABLE barang (id INT NOT NULL AUTO_INCREMENT, nama VARCHAR (50) NOT NULL, ju' в строке 1

Вот мой код:

try {
    con = DriverManager.getConnection(URL, USER, PASS);
    int answer = JOptionPane.showOptionDialog(this, "Database tidak ditemukan, ingin membuat baru?", "Database not found", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, null, null);
    if (answer == JOptionPane.YES_OPTION) {
        st = con.createStatement();
        String sql = ("CREATE DATABASE afifdb;"
                    + "CREATE TABLE barang ("
                    + "id INT NOT NULL AUTO_INCREMENT,"
                    + "nama VARCHAR(50) NOT NULL,"
                    + "jumlah INT(11),"
                    + "tanggal DATE,"
                    + "kondisi VARCHAR(20),"
                    + "keterangan VARCHAR(100),"
                    + "PRIMARY KEY (id)"
                    + ");");
        st.executeUpdate(sql);
    }
} catch (HeadlessException | SQLException e3) {
    JOptionPane.showMessageDialog(this, "Gagal. ERROR : " + e3);
}

Извините, я использую свой язык в этой программе, надеюсь, вы не против, я буду признателен за любую поддержку, которую вы оказываете. Спасибо.

1 Ответ

1 голос
/ 21 января 2020

executeUpdate() является документированным как:

Выполняет заданный оператор SQL, который может быть оператором INSERT, UPDATE или DELETE или оператором SQL который ничего не возвращает, например SQL оператор DDL.

Обратите внимание на единственное число . В вашем коде есть два SQL оператора.

Попробуйте разделить его на два отдельных вызова.

В качестве проверки ваш синтаксис create table выглядит правильно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...