diff --git a/database/getOrCreateValueType.go b/database/getOrCreateValueType.go
new file mode 100644
index 0000000000000000000000000000000000000000..c8d85a7838d8ee862572973057b4699a377637a6
--- /dev/null
+++ b/database/getOrCreateValueType.go
@@ -0,0 +1,30 @@
+package database
+
+import (
+	"gorm.io/gorm"
+	"jonasled.dev/jonasled/ems-esp-logger/database/tables"
+	"jonasled.dev/jonasled/ems-esp-logger/log"
+)
+
+func getOrCreateValueType(name string) tables.ValueType {
+	var valueType tables.ValueType
+	err := Db.Where("name = ?", name).First(&valueType).Error
+
+	if err != nil {
+		if err == gorm.ErrRecordNotFound {
+			// Create a new instance if it doesn't exist
+			valueType = tables.ValueType{
+				Name: name,
+			}
+			if err := Db.Create(&valueType).Error; err != nil {
+				log.Log.Fatalf("Failed to create value type: %v", err)
+			}
+			log.Log.Infof("Created new value type: %+v\n", valueType)
+		} else {
+			log.Log.Errorf("Failed to query database: %v", err)
+		}
+	}
+
+	return valueType
+
+}