diff --git a/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java b/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java
index 7cbe2b0f91f40d0661f6a38ef671c67d87d92d50..d7782fef832654f1879281e63b29581c43c451ab 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/CaseDatabaseFactory.java
@@ -264,9 +264,9 @@ private void createArtifactTables(Statement stmt) throws SQLException {
 	
 	private void createTagTables(Statement stmt) throws SQLException {
 		stmt.execute("CREATE TABLE tsk_tag_sets (tag_set_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, name TEXT UNIQUE)");
-		stmt.execute("CREATE TABLE tag_names (tag_name_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, display_name TEXT, "
+		stmt.execute("CREATE TABLE tag_names (tag_name_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, display_name TEXT UNIQUE, "
 				+ "description TEXT NOT NULL, color TEXT NOT NULL, knownStatus INTEGER NOT NULL,"
-				+ " tag_set_id " + dbQueryHelper.getBigIntType() + ", rank INTEGER, CONSTRAINT ck_name_set_id UNIQUE(display_name, tag_set_id),FOREIGN KEY(tag_set_id) REFERENCES tsk_tag_sets(tag_set_id) ON DELETE SET NULL)");
+				+ " tag_set_id " + dbQueryHelper.getBigIntType() + ", rank INTEGER, FOREIGN KEY(tag_set_id) REFERENCES tsk_tag_sets(tag_set_id) ON DELETE SET NULL)");
 		
 		stmt.execute("CREATE TABLE tsk_examiners (examiner_id " + dbQueryHelper.getPrimaryKey() + " PRIMARY KEY, "
 				+ "login_name TEXT NOT NULL, display_name TEXT, UNIQUE(login_name))");
diff --git a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
index 2145d522629396322718bf6c02870479fb8f04e2..a2214166727b483bfbe3b8b9ab1bee029dd31e23 100644
--- a/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/SleuthkitCase.java
@@ -9761,6 +9761,7 @@ public TagName addOrUpdateTagName(String displayName, String description, TagNam
 			statement.clearParameters();
 			statement.setLong(1, tagId);
 			resultSet = connection.executeQuery(statement);
+			resultSet.next();
 
 			return new TagName(this, tagId,
 					displayName, description, color, knownStatus, resultSet.getLong("tag_set_id"), resultSet.getInt("rank"));
@@ -11523,7 +11524,7 @@ private enum PREPARED_STATEMENT {
 				+ "FROM tsk_objects INNER JOIN blackboard_artifacts " //NON-NLS
 				+ "ON tsk_objects.obj_id=blackboard_artifacts.obj_id " //NON-NLS
 				+ "WHERE (tsk_objects.par_obj_id = ?)"),
-		INSERT_OR_UPDATE_TAG_NAME("INSERT INTO tag_names (display_name, description, color, knownStatus) VALUES (?, ?, ?, ?) ON CONFLICT (display_name, tag_set_id) DO UPDATE SET description = ?, color = ?, knownStatus = ?"),
+		INSERT_OR_UPDATE_TAG_NAME("INSERT INTO tag_names (display_name, description, color, knownStatus) VALUES (?, ?, ?, ?) ON CONFLICT (display_name) DO UPDATE SET description = ?, color = ?, knownStatus = ?"),
 		SELECT_EXAMINER_BY_ID("SELECT * FROM tsk_examiners WHERE examiner_id = ?"),
 		SELECT_EXAMINER_BY_LOGIN_NAME("SELECT * FROM tsk_examiners WHERE login_name = ?"),
 		INSERT_EXAMINER_POSTGRESQL("INSERT INTO tsk_examiners (login_name) VALUES (?) ON CONFLICT DO NOTHING"),
diff --git a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java
index 284a86cde5a985048eccf073a8ad0662380b597b..97e8b7b4b7a42e1d4b963e9c234104a3f25c3c95 100755
--- a/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java
+++ b/bindings/java/src/org/sleuthkit/datamodel/TaggingManager.java
@@ -173,55 +173,6 @@ public void deleteTagSet(TagSet tagSet) throws TskCoreException {
 		}
 	}
 
-	/**
-	 * Add the given TagName to the TagSet.
-	 *
-	 * @param tagSet	 The tag set being added to.
-	 * @param tagName	The tag name to add to the set.
-	 *
-	 * @return TagSet	TagSet object with newly added TagName.
-	 *
-	 * @throws TskCoreException
-	 */
-	public TagSet addTagNameToTagSet(TagSet tagSet, TagName tagName) throws TskCoreException {
-		if (tagSet == null || tagName == null) {
-			throw new IllegalArgumentException("NULL value passed to addTagToTagSet");
-		}
-
-		// Make sure the tagName is not already in the list.
-		List<TagName> setTagNameList = tagSet.getTagNames();
-		for (TagName tag : setTagNameList) {
-			if (tagName.getId() == tag.getId()) {
-				return tagSet;
-			}
-		}
-
-		CaseDbConnection connection = skCase.getConnection();
-		skCase.acquireSingleUserCaseWriteLock();
-
-		try (Statement stmt = connection.createStatement()) {
-			connection.beginTransaction();
-
-			String queryTemplate = "UPDATE tag_names SET tag_set_id = %d where tag_name_id = %d";
-			stmt.executeUpdate(String.format(queryTemplate, tagSet.getId(), tagName.getId()));
-
-			connection.commitTransaction();
-
-			List<TagName> newTagNameList = new ArrayList<>();
-			newTagNameList.addAll(setTagNameList);
-			newTagNameList.add(new TagName(skCase, tagName.getId(), tagName.getDisplayName(), tagName.getDescription(), tagName.getColor(), tagName.getKnownStatus(), tagSet.getId(), tagName.getRank()));
-
-			return new TagSet(tagSet.getId(), tagSet.getName(), newTagNameList);
-
-		} catch (SQLException ex) {
-			connection.rollbackTransaction();
-			throw new TskCoreException(String.format("Error adding TagName (id=%d) to TagSet (id=%s)", tagName.getId(), tagSet.getId()), ex);
-		} finally {
-			connection.close();
-			skCase.releaseSingleUserCaseWriteLock();
-		}
-	}
-
 	/**
 	 * Inserts a row into the blackboard_artifact_tags table in the case
 	 * database.