2017-03-27 3 views
-1

Wie Artikel in der obersten Tabelle in PostgreSQL einfügen? Dass es möglich ist? In der Tabelle habe ich nur zwei Felder als Text. Erstens ist Primärschlüssel.Wie Artikel in die oberste Tabelle einfügen

CREATE TABLE news_table (
    title text not null primary key, 
    url text not null  
); 

Ich brauche eine einfache Abfrage für das Programm in Java.

OK, das ist mein Code:

get("/getnews", (request, response) -> { 
    List<News> getNews = newsService.getNews(); 
    List<News> getAllNews = newsService.getAllNews(); 
    try (Connection connection = DB.sql2o.open()) { 
     String sql = "INSERT INTO news_table(title, url) VALUES (:title, :url)"; 
     for (News news : getNews) { 
      if (!getAllNews.contains(news)) { 
       connection.createQuery(sql, true) 
         .addParameter("title", news.getTitle()) 
         .addParameter("url", news.getUrl()) 
         .executeUpdate() 
         .getKey(); 
      } 

     } 
    } 
    return newsService.getNews(); 
}, json()); 

Das Problem ist, dass, wie es getNews Methode zum zweiten Mal ruft diese neue Nachricht am Ende der Tabelle hinzufügt, und es gibt keine vorhandenen hronologi Nachrichten. Wie ist das zu lösen? Ich benutze Sql2o + sparkjava.

Wahrscheinlich schon weiß ich. Ich muss die List getnews umkehren, bevor ich Objekte getnews und getallnews enthalten muss?

+0

'Einfügen in neue_Tabelle (Titel, URL) Werte ('Der Titel', 'Die URL');' –

+6

Es gibt keine "Tabellenspitze" –

+0

Um zu lernen, wie man eine Datenbank mit Java benutzt , siehe [JDBC-Tutorial] (http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html) –

Antwort

3

Es gibt keinen Anfang oder Ende in einer Tabelle. Wenn Sie Ihre Daten sortieren möchten, verwenden Sie einfach eine ORDER BY-Anweisung in Ihren SELECT-Anweisungen. Ohne ORDER BY gibt es keine Bestellung.

+0

Sie haben Recht. Ich werde den Test machen – kamiszczu

1

Relationale Theorie, die mathematische Grundlage relationaler Datenbanken, legt bestimmte Bedingungen fest, die Beziehungen (in realen Datenbanken als Tabellen dargestellt) erfüllen müssen. Eine davon ist, dass sie keine Reihenfolge haben (, d. H., die Zeilen werden weder gespeichert noch in einer bestimmten Reihenfolge abgerufen, da sie als mathematische Menge behandelt werden). Es unterliegt daher vollständig der Kontrolle des RDBMS, wo eine neue Zeile in eine Tabelle eingegeben wird.

Daher gibt es keine Möglichkeit, eine bestimmte Reihenfolge der Daten sicherzustellen, ohne eine ORDER BY-Klausel zu verwenden, wenn Sie die Daten abrufen.